我怎样才能运行一个macros的工作簿的名称?
我想运行一个macros,在其中指定我想要使用的工作簿的名称。
工作簿的名称将更改为Data (1), Data (2), Data (3) …
因为我可能会打开同一个文件超过1次。 对于工作簿Salary也是如此,有时显示为Salary (1), Salary (2)…
并给我一个“下标超出范围”的错误。
我如何运行一个采用工作簿名称的macros
数据,数据(1),数据(2)…和薪水,薪水(1),薪水(2)…
For i = 1 to 100 If Workbooks(“Data”).Worksheets(“Shee1).Cells(i,4).Value = 100 Then . . . For i = 1 to 100 If Workbooks(“Salary). ”).Worksheets(“Shee1).Cells(i,4).Value < 2000 Then . . .
迭代工作簿集合:
Dim wb As Excel.Workbook Dim wbSalary As Excel.Workbook Dim wbData As Excel.Workbook For Each wb In Workbooks If wb.Name Like "Data*" Then Set wbData = wb Else If wb.Name Like "Salary*" Then Set wbSalary = wb End If Next '// For example... MsgBox wbData.Name & " contains " & wbData.Sheets.Count & " worksheets." MsgBox wbSalary.Name & " contains " & wbSalary.Sheets.Count & " worksheets."
然后在代码中使用wbData
和wbSalary
来引用该工作簿
此代码将与所有打开的名称以Data
或Salary
开始的工作簿一起使用:
Sub Test() Dim Wb As Workbook Dim i As Long For Each Wb In Workbooks If Wb.Name Like "Data*" Then For i = 1 To 100 If Wb.Worksheets("Shee1").Cells(i, 4).Value = 100 Then '.... '.... End If Next ElseIf Wb.Name Like "Salary*" Then For i = 1 To 100 If Wb.Worksheets("Shee1").Cells(i, 4).Value < 2000 Then '.... '.... End If Next End If Next End Sub
如果要使用名称中包含"Data*"
或"Salary*"
所有打开的工作簿,请将"Data*"
和"Salary*"
更改为"*Data*"
和"*Salary*"
。