2015-11-23 44 views
1

我有大量需要導入到Excel中的文件。我發現並部分修改了這段代碼(我不記得在哪裏,所以我不能稱讚),這個代碼在90 + &%+的時間。用逗號將文本文件導入到Excel中

Sub Extractions() 

Application.ScreenUpdating = False 
Application.DisplayAlerts = False 
Application.DisplayStatusBar = False 

Dim FilesToOpen 
Dim x As Integer 

    On Error GoTo ErrHandler 

    FilesToOpen = Application.GetOpenFilename _ 
     (fileFilter:="Microsoft Excel Files (*.*?), *.*?", MultiSelect:=True, Title:="Files to Import") 

    If TypeName(FilesToOpen) = "Boolean" Then 
     MsgBox "No Files were selected" 
     GoTo ExitHandler 
    End If 

    x = 1 
    While x <= UBound(FilesToOpen) 
     Workbooks.Open fileName:=FilesToOpen(x) 
     Sheets().Move before:=ThisWorkbook.Sheets _ 
      (ThisWorkbook.Sheets.Count) 
     x = x + 1 
    Wend 

ExitHandler: 
    Application.ScreenUpdating = False 
    Exit Sub 

ErrHandler: 
    MsgBox Err.Description 
    Resume ExitHandler 
    Resume 

End Sub 

我導入的大多數文件都很好,因爲它們都是.csv,.txt。或.xlsx文件。但是,許多.csv和.txt文件在不同的行中包含逗號。當我導入它們時,它們將行分成兩部分,這會導致宏的後續部分出現問題。

當我正常導入文件時,不會發生逗號問題,並且文件導入第一列,這是它需要的位置。

有什麼辦法可以修改上面的代碼來簡單地將文件導入第一列,並忽略逗號?

+0

https://msdn.microsoft.com/fr-fr/library /office/ff194819.aspx,屬性:格式和分隔符 – R3uK

+1

@ R3uK感謝您的幫助。從鏈接(英文版,可能是法文或者非法加),正確的代碼是在'Workbooks.Open fileName:= FilesToOpen(x)之後放置',格式:= 5'。 – Clauric

+0

很高興我能幫上忙,我的法語版本不好,我甚至沒有注意到^^。知道你可以發佈並接受你自己的答案,將你的問題標記爲已解決! ;) – R3uK

回答

1

所以答案,用@ R3uK的幫助就是把

, Format:= 5

Workbooks.Open fileName:=FilesToOpen(x)