我有一个CSV文件,我将其作为Excel VBA中的工作簿打开(Workbooks.Open(“。csv”)),在粘贴后,我从csv文件中复制了一定范围,该文件最初是文本(请参见csv图像)新excel文件中的范围(请参见excel图片),它将丢失其前导零。我该如何解决?
答案 0 :(得分:2)
改为使用Workbooks.OpenText。
您可以使用FieldInfo
指定哪一列是哪种格式(请参见xlColumnDataType)。要保留零,请将此列的格式设置为文本。
Workbooks.OpenText Filename:=mypath, DataType:=xlDelimited, _
TextQualifier:=xlTextQualifierDoubleQuote, _
Semicolon:=True, _
FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2)), _
Local:=True
这会将第1…4列格式化为文本。
答案 1 :(得分:0)
在这里看不到您的图片,但是您的来源可能是一串数字。
我会将NumberFormat = "@"
应用于目标范围,并使用PasteSpecial xlValues
。
With targetDateRange
.NumberFormat = "@"
.PasteSpecial xlPasteValues
End with
另一种可能性是在粘贴后应用格式:
targetDateRange.NumberFormat = "0000000000"
但是您将得到数字,而不是字符串