2017-06-20 118 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循環中嗎?每條線做什麼? –

相關問題