格式化单元格会阻止我粘贴范围

时间:2017-06-20 06:03:52

标签: excel vba

For i = 3 To numPer + 3
    Sheets("Key Assumptions Generated").Select
    Cells(2, i).PasteSpecial

    Cells(1, i).Value = l

    Set curCell = Worksheets("Key Assumptions Generated").Cells(2, i)
    Cells(1, i).NumberFormat = "@"

    l = l + 1

Next i

这是我的系数。当我删除' Cells(1,i).NumberFormat =" @"'代码运行正常。但是当我尝试格式化时,循环将停止运行,并且我将使用Range类的PasteSpecial方法获得错误。

1 个答案:

答案 0 :(得分:0)

是的,因为您已经发现调整单元格数字格式的行为将取消之前的“跳舞蚂蚁”复制操作。如果没有被复制的东西(即,居住在剪贴板上),你就不能粘贴。

尽管分三步完成所有事情(在任何情况下都会以这种方式更快)。

with workSheets("Key Assumptions Generated")
    .Cells(2, 3).resize(1, numper).PasteSpecial
    .Cells(2, 3).resize(1, numper).NumberFormat = "@"
    .Cells(2, 3).offset(-1, 0) = l
    .Cells(2, 3).resize(1, numper).offset(-1, 0).DataSeries Rowcol:=xlRows, Type:=xlLinear, Step :=1
end with