我有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