您好我有一个文件夹,里面有82个不同类型的文件(.cpg,.dpf,.csv等...)
我想要excel进入该文件夹,只导入.csv文件,其中应该有24个文件。出于某种原因,这似乎导入49张而不是24张,我也觉得每个声明都有一个if语句很邋but但不知道更好的方法 有人可以建议一个更好的方法吗?下面是我使用的代码。
Sub BringInCSV()
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As
Object
Dim WS As Worksheet
Dim sheetname As String
Dim sheetname2() As String
Dim Folder As String
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")
Folder = InputBox("Where are the files located?")
On Error Resume Next
Set dirObj = mergeObj.GetFolder(Folder)
Set filesObj = dirObj.Files
For Each everyObj In filesObj
If Right(everyObj, 4) = ".csv" Then
Set bookList = Workbooks.Open(everyObj)
Range("A1:CO" & Range("A65536").End(xlUp).Row).Copy
ThisWorkbook.Worksheets(1).Activate
Set WS = Sheets.Add
Range("A65536").End(xlUp).PasteSpecial
Application.CutCopyMode = False
sheetname = everyObj
sheetname2 = Split(sheetname, "rollup_", 2)
Sheets(ActiveSheet.Name).Name = Replace(Left(sheetname2(1),
Len(sheetname2(1)) - 4), "_", " ")
End If
On Error Resume Next
bookList.Close
Next
End Sub
答案 0 :(得分:0)
原来数据来自一个mac,它将一堆隐藏文件放在目录中,所以我将if语句更改为
If Right(everyObj, 4) = ".csv" And Mid(everyObj, Len(Folder) + 2, 2) <> "._" Then