Ich habe Code verwendet, den ich hier gefunden habe, um mit der Konvertierung einer großen Liste von Excel-CSV-Dateien nach Excel 2003 zu beginnen. Während des Konvertierens wollte ich einen Standardordner für den Speicherort öffnen und dann zum richtigen Unterordner navigieren, in dem sich die CSV-Dateien befinden. Beim Durchlaufen des Codes wird jedoch keine meiner Variablen aufgefüllt. Mein Code ist unten und die Variable, die nicht gefüllt wird, ist strDir.Verwenden Sie die Funktion getfolder, um in einen Standardordner zu wechseln, und wählen Sie den Unterordner
Ich möchte Code, um strDir mit dem Standard-Speicherort + den Ordner, den ich wählen, zu füllen, aber ich bin mir nicht sicher, was ich mit diesem Code tun muss, um es zu tun.
Im Moment habe ich nur den Standardstandort hart-codiert und wenn Code läuft, öffnet sich dieser Ort. Aber wenn ich den Unterordner wähle, wie nehme ich das programmatisch auf?
Ich weiß, was ich tun möchte, aber wie dies in VBA zu erreichen ist meine Frage.
Public Sub CSV_to_XLS()
Dim wb As Workbook
Dim strFile As String
Dim strDir As String
Dim strDirCapture As String
'Set base directory for get folder to manipulate csv files
strDirCapture = GetFolder("\\DEVP-APPS-07\File Storgae\1_Pending\")
'strDir = strDirCapture
strDir = strDirCapture & "\"
strFile = Dir(strDir & "*.csv")
MsgBox "String directory path = " & strDirCapture
MsgBox "StrFile = " & strFile
Do While strFile <> ""
'Set wb = Workbooks.Open(Filename:=strDir & strFile, Local:=True)
'wb.SaveAs Replace(wb.FullName, ".csv", ".xls"), 56 'UPDATE:
wb.Close True
Set wb = Nothing
strFile = Dir
Loop
End Sub
Function GetFolder(strPath As String) As String
Dim fldr As FileDialog
Dim sItem As String
Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
With fldr
.Title = "Select a Folder"
.AllowMultiSelect = False
.InitialFileName = strPath
If .Show <> -1 Then GoTo NextCode
sItem = .SelectedItems(1)
End With
NextCode:
GetFolder = sItem
Set fldr = Nothing
End Function
Vielen Dank
Andrew
aktualisieren Hinzufügen Schrägstrich "\" des Verzeichnisses zu beenden gefangen scheint dies behoben zu haben. Haben den Code oben geändert, um diese Änderung widerzuspiegeln.
erleben Sie einen Fehler mit 'GetFolder'? Scheint gut für mich zu funktionieren. –
@Robin kein Fehler, es lädt keine der Dateien, die ich jedoch verarbeiten möchte. 'MsgBox "StrFile =" & strFile' zeigt leer an. strDir akzeptiert den Wert ok und der ausgewählte Ordner wird übernommen, aber keine der Dateien wird in Excel konvertiert. – Andrew