通过 VBA 导入 csv 时,将数字类型更改为文本类型



我在下面得到了一个导入 csv 代码

Private Sub Workbook_Open()
Dim xFileName As Variant
Dim Rg As Range
Dim xAddress As String
xFileName = Application.GetOpenFilename("CSV File (*.csv), *.csv", , , , False)
If xFileName = False Then Exit Sub
On Error Resume Next
xAddress = Range("A1").Address
With ActiveSheet.QueryTables.Add("TEXT;" & xFileName, Range(xAddress))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub

通常,它可以工作,但是当导入csv但某种以0数字开头的列时,excel将该单元格视为数字并删除(隐藏(所有0开始单元格。

我尝试添加此脚本,但不起作用。

ActiveSheet.NumberFormat = "@"

您是否尝试过格式化目标字段

"查询表.文本文件列数据类型"属性

.TextFileColumnDataTypes = Array(xlTextFormat)

最新更新