我wb1,wb2,wb3 .. wb10
打开了。
我需要在wb1,wb5,wb6
上执行一些命令。如果我使用workbooks
集合,那么它将遍历所有工作簿。
For Each book In Workbooks
此外,Application
在VBScript中不可用。
如何循环浏览特定的工作簿?
答案 0 :(得分:3)
可以使用工作簿名称直接访问它。例如:
objExcel.Workbooks("wb1").ActiveSheet.Cells(1, 1) = "This is in book 1"
objExcel.Workbooks("wb2").ActiveSheet.Cells(1, 1) = "This is in book 2"
而且,是的,Application
在VBScript中不可用。但你可以自己创建它。它只是对Excel应用程序对象的引用。
Set Application = CreateObject("Excel.Application")
答案 1 :(得分:2)
为了在循环中处理打开的工作簿的子集,您可以创建一个Dictionary
,其中包含您要处理的工作簿的名称,并限制循环中的处理,如下所示:
Set workbooksToProcess = CreateObject("Scripting.Dictionary")
workbooksToProcess.Add "wb1", True
workbooksToProcess.Add "wb5", True
workbooksToProcess.Add "wb1", True
For Each book In xl.Workbooks
If workbooksToProcess.Exists(book.Name) Then
...
End If
Next
或创建一个包含名称的数组,并像这样处理工作簿:
workbooksToProcess = Array("wb1", "wb5", "wb6")
For Each name In workbooksToProcess
Set book = xl.Workbooks(name)
...
Next
答案 2 :(得分:1)
`for idx=0 to count
if strcomp(workbook(idx).name,"wb1")=0 or strcomp(workbook(idx).name,"wb2")=0 then
'execute some code
end if
next`