我怎样才能运行一个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." 

然后在代码中使用wbDatawbSalary来引用该工作簿

此代码将与所有打开的名称以DataSalary开始的工作簿一起使用:

 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*"