我正在寫一個涉及從文件夾中獲取.csv文件的宏。宏要求用戶輸入文件夾路徑,輸入後,它將獲取文件夾中的所有.csv文件,並將其放在工作簿中。如何將自定義搜索過濾器添加到我的方法?
我想要宏詢問用戶他們想要加載到工作簿的擴展名。
例如,某些文件被命名爲Chan_41-103.csv,Chan_41-109.csv和Chan_44-103.csv。因此,如果有方法向用戶詢問他們需要什麼文件,並且他們可以輸入「* -103.csv」,並且宏只會在文件名中使用-103.csv文件。
我知道我可以直接硬編碼「* -103.csv」,它會這樣做,但是,有很多不同名稱的文件,我將不得不爲一堆文件運行此宏。如果它可以問用戶,那會很好。
這裏是我已經有了代碼:
Sub CSV_Sheets()
'This takes the .csv file from a specific folder and puts it into the workbook
Dim i As Integer
Dim path As String
Dim Extension As String
Cells(2, 2).Value = InputBox("Extension of File:", "Extension *-#.csv")
Extension = Cells(2, 2).Value & "\"
i = 1
Range("A1").Value = "CSV Folder Path="
Range("A1").HorizontalAlignment = xlRight
Cells(1, 2).Value = InputBox("CSV File Folder Pathway:", "Path Assignment")
path = Cells(1, 2).Value & "\"
Filename = Dir(path & Extension)
Do While Filename <> ""
Workbooks.Open Filename:=path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub
使用'InputBox'命令。 – 2014-10-08 18:50:25
我已經在那裏有InputBox命令,只是想知道如何將我輸入的輸入框和擴展名連接起來,所以在「Filename = Dir(path&Extension)行中我想要我在輸入框中輸入的內容在擴展的地方 – CTCWAP 2014-10-08 18:56:42
你有沒有嘗試在'Extension'前加'*' – 2014-10-08 19:05:05