当我使用PasteSpecial粘贴数字列时,它将它们粘贴为文本而不是数字。如何以数字格式粘贴它们?

时间:2019-07-18 23:24:45

标签: excel vba

我正在尝试在一张纸上复制一列数字并将其粘贴到另一张纸上的另一列。当我粘贴数字列时,即使它们在原始工作表中的格式是数字,也会将它们粘贴为文本。我能做什么?

我尝试使用几种不同的PasteSpecial格式,并且还尝试记录一个宏,在该宏中我将格式从文本转换为数字,但是这些都不起作用。

Range(Selection, Selection.End(xlDown)).Select
        Application.CutCopyMode = False
        Selection.Copy

        Worksheets("Data").Activate
        Range("I1").Select
        ActiveCell.Offset(NumRowsToSkip, 0).Select
        ActiveCell.PasteSpecial Paste:=xlPasteValuesAndNumberFormats

我希望将数字列粘贴为数字,但将其粘贴为文本,这会使我的电子表格中的方程式混乱。

1 个答案:

答案 0 :(得分:0)

您可以进行很多选择,这是不需要的。您应该能够在粘贴之前设置格式,但是以下代码将自动将整个列设置为您在宏中指定的任何数字格式。

Sub QuickExample()
'Set your number format the way you want. You can find this in formatting/custom to see whatever you've selected
'The below example is with commas, no decimals, red for negative.
Const YourPreferredNumberFormat As String = "#,##0_);[Red](#,##0)"


    Range(Selection, Selection.End(xlDown)).Copy

    With Worksheets("Data").Range("I1")
        .Offset(NumRowsToSkip, 0).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
        .EntireColumn.NumberFormat = YourPreferredNumberFormat
    End With

End Sub