我有一个n个国家和一个宏xyz的列表。我想创建一个新的宏,它选择国家1并运行宏xyz,然后运行国家2并运行宏xyz ,,,,直到country n。我该怎么做?
答案 0 :(得分:1)
这取决于您存储“n个国家/地区列表”的方式。
假设从标题中,您的国家/地区位于一系列单元格中(在col
列中等于1
,从1
到n
的行等于100;您稍后会适应这个),
像这样的东西应该工作(我现在在Ubuntu下,我无法测试它)
Option Explicit
Dim i as Integer, n as integer, col as Integer,
Dim c as String
n = 100
col = 1
'Dim r as Range
For i = 1 To n
c = Cells(i,col).Value
Call xyz(c)
Next i
PS:我刚刚发布了这个答案,假设这些国家/地区存储在一个字符串数组中。现在我根据标题更改了这个。
答案 1 :(得分:1)
嗯,你的“设计”很少:不要选择任何东西!如果要更改或对单元格值执行任何操作,请使用Cells.Value
属性! Haing说,修改你的宏xyz
以获取一个字符串参数:
Sub xyz(country As String)
如果你想改变一个细胞本身,你可以这样做:
Sub xyz(countryCell As Range)
现在,如果你想循环遍历范围,For Each
循环可能会派上用场:
Sub FinalMacro()
Dim rng As Ragne, cell As Range
Set rng = Range("A1:A100") 'example range - enter the range conatining countries
For Each cell In rng
Call xyz(cell.Value)
'or Call xyz(cell)
Next
End Sub