2017-06-20 1 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 

Das ist mein Koe. Wenn ich den Code "Cells (1, i) .NumberFormat =" @ "lösche, läuft der Code einwandfrei. Aber wenn ich versuche zu formatieren, hört die Schleife auf zu laufen und ich bekomme einen Fehler mit der PasteSpecial-Methode der Range-Klasse.Das Formatieren einer Zelle verhindert das Einfügen eines Bereichs

+0

Suchen Sie nach einer Füllreihe von Werten in der ersten Zeile, beginnend mit 'l'? Womit beginnt 'ich'? Ich verstehe, dass es für jede Iteration in Ihrer Schleife um 1 erhöht wird. – Jeeped

Antwort

0

Ja, wie Sie erkannt haben, wird durch das Ändern des Zahlenformats einer Zelle der vorherige Kopiervorgang der "tanzenden Ameisen" aufgehoben. Sie können nicht einfügen, ohne dass etwas kopiert wird (d. H. Sich in der Zwischenablage befindet).

Tun Sie einfach alles in drei Schritten (auf jeden Fall schneller).

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

Hallo Jeeped, Vielen Dank für Ihre Antwort. Ich bin mir sicher, dass Sie Recht haben, aber ich kenne Ihren Code nicht sehr gut. Sollte ich das in meine for-Schleife einfügen? Was macht jede Linie? –

Verwandte Themen