2016-08-04 34 views
0

Ich habe ein Problem hier mit meinem VBA-Code.Kopieren Einfügen Charts Excel VBA

Dies ist der erste Code, den ich in VBA schreibe. Grundsätzlich möchte ich eine Bedingung überprüfen (Wert von Zelle F7 in Blatt2), und basierend darauf möchte ich einen von zwei Diagrammen in Blatt2 einfügen.

Private Sub CommandButton1_Click() 


CommandButton1.Caption = "Stock Size Range" 
CommandButton1.BackColor = 0 
CommandButton1.ForeColor = 16777215 

'Clear the chart area 
Charts("Chart41").ChartArea.Clear 


If Sheets("sheet2").Range("F7") = 1 Then 'Aluminum Material 


    Sheets("sheet3").ChartObjects("Chart666").Select 
    Sheets("sheet3").ChartObjects("Chart666").Copy 
    ChartObjects("Chart41").Paste 

    Else 

    Sheets("sheet4").ChartObjects("Chart888").Select 
    Sheets("sheet4").ChartObjects("Chart888").Copy 
    ChartObjects("Chart41").Paste 

End If 

End Sub 

Sache ist ,, wenn ich auf der Schaltfläche klicken, es gibt mir einen Laufzeitfehler „9“: Index außerhalb des zulässigen Bereichs und es verweist auf die Linie (Chart („Chart41“) Chartarea. .Clear)

Danke,

+0

'Chartobjects ("Chart41". Chart.ChartArea.Clear' –

+0

Danke, es sagt der Artikel mit dem angegebenen Namen wurde nicht gefunden. Ich bin mir ziemlich sicher, dass ich den Namen geändert habe. Was denkst du? –

+0

@TimWilliams Ich habe es geschafft zu arbeiten. Kannst du mir bitte sagen, warum mein ursprünglicher Code nicht funktioniert hat? –

Antwort

0

(Sorry, aber ich habe nicht genug Ruf um einen Kommentar zu schreiben und über weitere Informationen zu fragen, also werde ich mein Bestes tun!)

Hallo!

Vielleicht müssen Sie zum gewünschten Blatt gehen, wo das Diagramm eingefügt wird, ein Diagramm erstellen und dann eine ID zuordnen, zum Beispiel "MyNewChart" (Sie ändern die Diagramm-ID im "Bereich" wo geschrieben wird "Node 5" in einem roten Rechteck in diesem Bild http://i.stack.imgur.com/hf2Nq.png)

dann in Ihrem Code, wenn Sie das Diagramm einfügen möchten, können Sie schreiben:

Sheets("WriteSheetNameHere").ChartObjects("MyNewChart").Paste 

HTH;)

+0

Vielen Dank ,, jetzt funktioniert es –

+0

Der Code funktioniert nicht wieder, können Sie bitte beraten? @RCaetano –

+0

Wie ist das Verhalten? Arbeitet es nur beim ersten Mal oder ist es etwas anderes? Vielleicht wäre der beste Ansatz, das vorhandene Diagramm (Ihr Diagramm41) zu löschen, dann vor dem Einfügen ein neues zu erstellen, ihm eine ID zuzuweisen und schließlich das Diagramm einzufügen. Diese Schritte sollten jedes Mal ausgeführt werden, wenn Sie das Makro ausführen müssen – RCaetano