将(错误的)CSV数据导入Excel
我正在尝试将一些(坏的)CSV数据导入Excel。 我称之为“坏”,因为它在某些单元格中硬编码输入,而在其他单元格中包含格式为文本的数字(带有我需要的前缀0) 我创建了两个ImportMacro:将(错误的)CSV数据导入Excel,excel,vba,csv,Excel,Vba,Csv,我正在尝试将一些(坏的)CSV数据导入Excel。 我称之为“坏”,因为它在某些单元格中硬编码输入,而在其他单元格中包含格式为文本的数字(带有我需要的前缀0) 我创建了两个ImportMacro: Sub LoadSheetCSV(fromsheet As String, sheetname As String) 'Load sheet fromfile = DownDatafiles & "\" & fromsheet & ".c
Sub LoadSheetCSV(fromsheet As String, sheetname As String)
'Load sheet
fromfile = DownDatafiles & "\" & fromsheet & ".csv"
Sheets.Add After:=ActiveSheet
ActiveSheet.Name = sheetname
Application.CutCopyMode = False
Set wb = Workbooks.Open(filename:=fromfile, Local:=True)
aData = wb.Worksheets(1).UsedRange.Value
lRows = UBound(aData, 1)
lCols = UBound(aData, 2)
ThisWorkbook.Activate
Sheets(sheetname).Activate
With ActiveSheet
.Range(.Cells(1, 1), .Cells(lRows, lCols)).Value = aData
End With
wb.Close
End Sub
不幸的是,这一个从数字中删除了前缀零
下一个保持前缀为零,但当它点击硬编码输入时,将保留空白行:
Sub LoadSheetCSV_ALT(fromsheet As String, sheetname As String, progresstxt As String)
Dim ws As Worksheet
Dim colDataTypesArr(1 To 10000) As Long
Dim i As Long
'Load sheet
fromfile = DownDatafiles & "\" & fromsheet & ".csv"
Sheets.Add After:=ActiveSheet
ActiveSheet.Name = sheetname
Application.CutCopyMode = False
Set ws = ActiveSheet
For i = 1 To UBound(colDataTypesArr)
colDataTypesArr(i) = 2
Next i
With ws.QueryTables.Add(Connection:="TEXT;" & fromfile, Destination:=ws.Range("A1"))
.TextFileParseType = xlDelimited
.TextFileSemicolonDelimiter = True
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileColumnDataTypes = colDataTypesArr
.TextFilePlatform = 65001
.Refresh
End With
End sub
知道如何将两个解决方案合并为一个好的解决方案吗?:-)
谢谢 CSV文件不像Excel工作表那样具有单元格。请提供一些示例数据。如果使用PowerQuery(data>>From Text/csv),这样的文件应该可以正常加载-它允许您将包含前导零的列设置为文本,并在“单元格”中保留换行符,只要这些值在文件中引用即可。