我希望我的工作簿中有一个模块来编写下面的上千种组合
Sub trade0001open()
Sheets("TRADEDIARY").Range("AO2").Value = 1
Sheets("TRADEDIARY").Range("AD3").Value = _
Sheets("TRADEDIARY").Range("AJ2").Value
Sheets("TRADEDIARY").Range("AD4").Value = _
Sheets("Sheet8").Range("HA1").Value + 1
Sheets("TRADEDIARY").Range("AO3").Value = 0
End Sub
Sub trade0001close()
Application.ScreenUpdating = False
Sheets("TRADEDIARY").Range("AI3").Value = Sheets("TRADEDIARY").Range("AI3").Value + 1
Sheets("TRADEDIARY").Range("AO3").Value = 1
Application.Wait (Now + 0.000001)
Sheets("TRADEDIARY").Range("AO3").Value = 0
Sheets("TRADEDIARY").Range("AO2").Value = 0
Sheets("TRADEDIARY").Range("AI2").Value = Sheets("TRADEDIARY").Range("AI2").Value + 1
Application.ScreenUpdating = True
End Sub
通过每次向下四行的累加器更改单元格引用。因此,在下一个AO2中,每一个AD3都会变成AD7。除了HA1之外,一切都会发生变化,第一个子模块包括AO2、AD3、AJ2、AD4、AO3,第二个子系统包括AI3、AO3、AO2、AI2。
因此,由于我上面的代码包含了我希望复制一千次的两个子--每个副本将在每个子子中的每个cel引用中添加4行。
我对vba非常陌生,所以我想我需要类似于excel中的类似的自动填充函数,除了我的代码可以快速地完成这个任务,而不是输入数千次以外,当然,我想有人可以建议如何以不同的方式完成这个任务。暗示暗示。显然,我希望所有的值都没有剪贴板粘贴,这样当这些值从它们被复制的位置改变时,目标就不会改变。这就是我上面的代码所实现的。
然后,我想将这两个子表中的每个子分别签名到扩展表中的developer按钮控件中(再次签名,每次更改4行)。
@matteo澄清说,我设想的唯一方法是让1000 trade0001open()和1000 trade001close()可能被定义为trade0001open()、trade0002open()等,以便右击vba开发人员的控制按钮中的每一个单元,将控制按钮合并到每个单元格AK4以打开按钮,而AM4用于关闭按钮,这样的话,AK8和AM8等就会再次长呼,我不认为开发人员的按钮可以合并到vba内部的每个单元格中,同时分配给每个子单元。我想一个解决办法可能是将j配置到子名称中。‘’
matteo的回答是:‘这里的回答很复杂,我会给您一个提示:始终使用相同的宏,但拦截调用启动的单元格的引用,以便像我前面展示的那样,直接添加4行。您不需要2000个宏,只有两个宏是根据调用方父程序‘ me:’重新调整自己的,所以我想这比看起来要复杂得多,如果我可以让表单按钮与单元格连接,以引用两个宏中的j值,而不需要生成数千个子宏。据我所知,excel中的表单按钮只能引用没有引用的子函数,而不能引用UDF或任何其他甚至单元格引用,尽管我可能错了。'‘
一个表单按钮,根据一个单元格的引用调用潜艇,这就是我需要的,对吗?
http://www.mrexcel.com/forum/excel-questions/843078-loop-visual-basic-applications-sub-call-form-button-each-nth-row-based-cell-value-row-reference.html#post4105072
发布于 2015-03-18 10:33:40
您只需要使每个字符串重新定义,并循环1000次相同的宏。这是一个开始的例子:
For j = 1 To 1000 '<-- do this 1000 times
'...
Sheets("TRADEDIARY").Range("AO" & 2 + (j-1)*4).Value = 1 '<-- if j=1 then row = 2, if j=2 then row = 2+4 = 6 etc.
'...
Next j
https://stackoverflow.com/questions/29119489
复制相似问题