以下代码在列中包含前导零时将其删除。我认为PasteSpecial会解决这个问题。有没有办法确保在此子填充CSV时保留任何前导零?

Sub PasteStufff()

Dim myRange As Range
Dim outFile As String

outFile = "mypath\path\file.csv"

Set myRange = Sheets("base").Range("A1:G1")
Set myRange = Range(myRange , myRange .End(xlDown))
Sheets("base").Select
myRange.Select
Selection.Copy
    Workbooks.Add
    ActiveSheet.Cells(1, 1).PasteSpecial xlPasteValues
    ActiveWorkbook.SaveAs Filename:= _
    outFile _
    , FileFormat:=xlCSV, CreateBackup:=False
    Application.DisplayAlerts = False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True

End Sub

最佳答案

我不知道它是在哪个版本中引入的,但是在Excel 2010中,您可以使用

Paste:=xlPasteFormulasAndNumberFormats


代替

Paste := xlPasteValues


并且在非常短的测试基础上,这似乎可行(假设您的原始输入首先是数字)。

关于excel - Excel VBA不会粘贴前导零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18859598/

10-10 18:59