2017-06-20 4 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 = "@"'コードを削除すると正常に動作します。しかし、私がフォーマットしようとすると、ループの実行が止まり、RangeクラスのPasteSpecialメソッドでエラーが発生します。セルをフォーマットすると、範囲を貼り付けることができなくなります

+0

「l」で始まる最初の行に値の塗りつぶしを取得したいですか? 「l」は何から始まるの?私はあなたのループの各反復ごとに1ずつインクリメントされることを理解しています。 – Jeeped

答えて

0

はい、セルの番号の形式を調整する行為を中止したので、これまでの「ダンスアリのコピー」操作はキャンセルされます。クリップボードにコピーされているもの(クリップボードにあるもの)がないと貼り付けることはできません。

3つの手順ですべてを一度に実行してください(どのような場合でもこの方法が高速です)。

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

こんにちはジープ、 お返事ありがとうございます。私はあなたが正しいと確信していますが、あなたのコードにあまり慣れていません。 forループに貼り付けてください。各行は何をしていますか? –

関連する問題