首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优于VBA。如何告诉宏键入1到10下一列和重复直到结束?

优于VBA。如何告诉宏键入1到10下一列和重复直到结束?
EN

Stack Overflow用户
提问于 2017-10-25 02:04:05
回答 1查看 1.4K关注 0票数 0

当前正在尝试创建一个宏,该宏在列中填充数字1至10,并一直重复到my语句的末尾。这就是我的想法:

按一下按钮,数字将从第3行开始,数到10。一旦完成,就会重复到最后。我以前做过一个变体--这个程序为10行创建了1的重复,对接下来的10行重复了2,等等:

代码语言:javascript
复制
Sub fill()

Dim ID
ID = 1
For c = 1 To 34        
    ActiveWorkbook.Sheets("Sheet1").Cells(c + 2, 1) = ID
    ActiveWorkbook.Sheets("Sheet1").Cells(c + 3, 1) = ID
    c = c + 1
    If (c Mod 10) = 0 Then
        ID = ID + 1
    End If

Next c

End Sub

如果我想把它转换成计数1-10,然后重复,需要改变什么。我想重复使用这段代码,并对公式做一些修改。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-25 02:22:49

下面是一个懒惰的方法的例子。

代码语言:javascript
复制
Sub Macro1(offsetIn As Integer, colIn As Integer)

offset = offsetIn - 1
Column = colIn

For c = 1 To 34

  ActiveWorkbook.Sheets("Sheet1").Cells(c + offset, colIn) = c Mod 10

  If (c Mod 10 = 0) Then
     ActiveWorkbook.Sheets("Sheet1").Cells(c + offset, colIn) = 10
  End If

Next c

End Sub

至于如何让这个宏在单击时触发。您可以这样做:此代码需要进入您的工作表代码。即右击工作表图标,然后单击“查看代码”。

代码语言:javascript
复制
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim rInt As Range
    Dim rCell As Range

    Set rInt = Intersect(Target, Range("A1:P312"))
    If Not rInt Is Nothing Then

        Call Macro1(rInt.Row, rInt.Column)

    End If
    Set rInt = Nothing
    Set rCell = Nothing
    Cancel = True
End Sub

编辑:这应该适用于任何双击范围内的任何单元格(“A1:P 312”)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46922796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档