我有wb1,wb2,wb3 .. wb10
开放。如何遍历特定工作簿?
我需要在wb1,wb5,wb6
上执行一些命令。如果我使用workbooks
集合,则它将遍历所有工作簿。
For Each book In Workbooks
另外,Application
在VBScript中不可用。
如何循环访问特定工作簿?
我有wb1,wb2,wb3 .. wb10
开放。如何遍历特定工作簿?
我需要在wb1,wb5,wb6
上执行一些命令。如果我使用workbooks
集合,则它将遍历所有工作簿。
For Each book In Workbooks
另外,Application
在VBScript中不可用。
如何循环访问特定工作簿?
两种方式 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`
工作簿的名称可用于直接访问它。例如:
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")
为了处理在一个循环中打开的工作簿的一个子集,你可以创建一个要处理并在循环这样的限制处理工作簿的名称的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
避免复杂的布尔表达式*和*处理循环问题。 – 2014-09-20 11:42:39
你需要发布更多的代码,然后你有。不知道你如何引用应用程序或创建对象。 – Sorceri 2014-09-19 18:22:40