[英]How to import .CSV preserving leading zeros numbers into Excel using VBA
我有一个数据库,可以提取 in.CSV 并使用 VBA 我将数据导入 Excel 但导入时,ID 中缺少一些前导零
即使我在 Excel 中打开 .CSV 文件,这些零也不存在。 这是我正在使用的当前代码:
sub import()
Dim File As String
MsgBox "Please select the Extract File", vbInformation
With Application.FileDialog(msoFileDialogFilePicker)
.Filters.Clear
.InitialFileName = "\\route"
.AllowMultiSelect = False
.Filters.Add "csv", "*.csv"
If .Show = -1 Then
File = .SelectedItems(1)
Else
MsgBox "Please, select the file then try again", vbExclamation
Exit Sub
End If
End With
With Worksheets("Data Paste").QueryTables.Add(Connection:= _
"TEXT;" & File _
, Destination:=Worksheets("Data Paste").Range("$A$1"))
.Name = "FileName"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileTrailingMinusNumbers = True
.TextFileColumnDataTypes = Array(xlTextFormat)
.Refresh BackgroundQuery:=False
End With
Exit Sub
我尝试事先将工作表的格式更改为 TEXT,但即使该数据是文本格式,这些零仍然丢失。
编辑1:我用记事本打开了.CSV,那些前导零就在那里。 但不是当我用 Excel 打开它时
.TextFileColumnDataTypes = Array(xlTextFormat)
只会将文本格式应用于第一列。 您需要添加与需要以文本格式导入的每一列对应的值。
https://docs.microsoft.com/en-us/office/vba/api/excel.querytable.textfilecolumndatatypes
返回或设置一个有序的常量数组,这些常量指定应用于要导入查询表的文本文件中的相应列的数据类型。 每列的默认常量是 xlGeneral。 读/写变体。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.