我每天運行此代碼將影響目錄中的每個.xlsx工作簿,但如果文件名不在「Okay」數組中,我該如何忽略工作簿?打開指定的工作簿僅
這是我目前的語法:
Option Explicit
Public Sub OpenExcelInDir()
Dim MyFolder As String
Dim MyFile As String
MyFolder = "C:\ExcelSheets"
MyFile = Dir(MyFolder & "\*.xlsx")
Do While MyFile <> ""
Workbooks.Open Filename:=MyFolder & "\" & MyFile
MyFile = Dir
Call UpdateAllSheets
Loop
End Sub
現在我想改變它,這樣我可以聲明一個字符串數組,僅在陣列像這樣打開的工作簿:
Dim goodWB() As String
goodWB= Split("ABC123,DEF456,GHI789", ",")
請注意,「Filter」函數搜索部分匹配或用作過濾器的字符串的子集。因此,它的結果不符合OP的要求,因爲在該文件夾包含一個名爲'xABC123.xlsx'的文件的情況下,它將被打開,因爲它與目標文件'ABC123.xlsx'部分匹配' – EEM
@EEM你有好的除了這就是爲什麼我將數組更改爲包含文件擴展名。帶擴展名的文件名將不可能包含在另一個文件名中。試試看,AABC123或ABC1233不會被發現,只有ABC123。所以......我相信這符合OP的要求,只是另一種做法。不是最快的,但它避免了另一個循環,並使用大部分原始代碼。乾杯 –
我試過了,因此我的評論已經閱讀。編程明智的做法不好,當一個程序不可能不會失敗時,它肯定會失敗。這是一個標準和質量問題... – EEM