2017-06-20 114 views
2
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 =“@”'代码运行正常。但是,当我尝试格式化循环将停止运行,我会得到'错误与类别的PasteSpecial方法。格式化单元格会阻止我粘贴范围

+0

您是否正在以'l'开始的第一行获取一系列填充值? 'l'从什么开始?我明白,你的循环中每次迭代都会增加1。 – Jeeped

回答

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 
+0

Hi Jeeped, 感谢您的回复。我相信你是正确的,但我不太熟悉你的代码。 我应该把它粘贴在我的for循环中吗?每条线做什么? –

相关问题