Ich habe Code, der zwei Ordner vergleicht (Textdateien & ExcelFiles), um zu finden, wenn alle TextFiles nach Excel konvertiert werden. Wenn nicht, ruft es eine Funktion auf, die dies tut. Alles funktioniert gut, aber wenn ich die Excel-Datei öffne, kann sich das Format von einer Reihe zu einer anderen in derselben Spalte ändern.VBA Konvertieren von Text in Excel Format Zellen ändern von Allgemein zu Numerisch für einige Zeilen
Dies ist mein Code:
Die allgemeinen Format Zellveränderungen für einige Datensätze und wird zu einer Zahl exp: 4'927'027.00 sollte
Sub LookForNew()
Dim dTxt As String, dExcel As String, key As String
Dim i As Integer
Dim oFileExcel, tFileExl, oFileExl, fso, filsTxt, filsExcel, fil, exl
Set fso = CreateObject("Scripting.FileSystemObject")
Set filsTxt = fso.GetFolder("C:\txtFiles").Files
Set filsExcel = fso.GetFolder("C:\excelFiles").Files
Set oFileExcel = CreateObject("Scripting.Dictionary")
Set tFileExl = CreateObject("Scripting.Dictionary")
Set oFileExl = CreateObject("Scripting.Dictionary")
i = 0
For Each fil In filsTxt
dTxt = fil.Name
dTxt = Left(dTxt, InStr(dTxt, ".") - 1)
For Each exl In filsExcel
dExcel = exl.Name
dExcel = Left(dExcel, InStr(dExcel, ".") - 1)
key = CStr(i)
oFileExcel.Add dExcel, "key"
i = i + 1
Next exl
If Not (oFileExcel.Exists(dTxt)) Then
Call tgr
End If
Next fil
Set fso = Nothing
End Sub
Sub tgr()
Const txtFldrPath As String = "C:\txtFiles"
Const xlsFldrPath As String = "C:\excelFiles"
Dim CurrentFile As String: CurrentFile = Dir(txtFldrPath & "\" & "*.txt")
Dim strLine() As String
Dim LineIndex As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
While CurrentFile <> vbNullString
LineIndex = 0
Close #1
Open txtFldrPath & "\" & CurrentFile For Input As #1
While Not EOF(1)
LineIndex = LineIndex + 1
ReDim Preserve strLine(1 To LineIndex)
Line Input #1, strLine(LineIndex)
'STRIP TABS OUT AND REPLACE WITH A SPACE!!!!!
strLine(LineIndex) = Replace(strLine(LineIndex), Chr(9), Chr(32))
Wend
Close #1
With ActiveSheet.Range("A1").Resize(LineIndex, 1)
.Value = WorksheetFunction.Transpose(strLine)
'DEFINE THE OPERATION FULLY!!!!
.TextToColumns Destination:=.Cells(1), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
Tab:=False, Semicolon:=False, Comma:=False, Space:=False, _
Other:=True, OtherChar:="|"
End With
ActiveSheet.UsedRange.EntireColumn.AutoFit
ActiveSheet.Copy
ActiveWorkbook.SaveAs xlsFldrPath & "\" & Replace(CurrentFile, ".txt", ".xlsx"), xlOpenXMLWorkbook
ActiveWorkbook.Close False
ActiveSheet.UsedRange.ClearContents
CurrentFile = Dir
Wend
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Dies ist das Bild Sei 4927027 wie die anderen. diese ist die Textdatei Zeilen
Und ich möchte eine MSGBOX setzen, wenn es keine Dateien ist in „LookForNew“ -Funktion zu konvertieren, aber ich weiß nicht, wo.
Hallo @Thomas Inzina, I''ll fügen Sie die Zeilen in Textdatei sind sie alle same – BKChedlia
Können Sie einen Download-Link für eine der Textdateien bereitstellen? Es hilft mir, das Problem neu zu erstellen. –
Dies ist der Link: https://drive.google.com/open?id=0B6nhIMB-ueBhMnBoY0xyS0VuSmc – BKChedlia