如何遍历特定的工作簿?

时间:2014-09-19 18:17:56

标签: vbscript

wb1,wb2,wb3 .. wb10打开了。

我需要在wb1,wb5,wb6上执行一些命令。如果我使用workbooks集合,那么它将遍历所有工作簿。

For Each book In Workbooks

此外,Application在VBScript中不可用。

如何循环浏览特定的工作簿?

3 个答案:

答案 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)

两种方式 1.如果你知道wordkbooks(0),wordkbooks(5)等命令,请通过索引 2.更通用的方式名称

`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`