Kopieren und Einfügen von Diagrammen in Excel VBA

Ich habe hier ein problem mit meinem VBA-code.

Dies ist der erste code, den ich Schreibe in VBA.
Im Grunde möchte ich, um zu prüfen, eine Bedingung (Wert von Zelle F7 in Tabelle2), und auf dieser Basis möchte ich einfügen eine der beiden Diagramme in Tabelle2.

    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 die Befehlsschaltfläche, gibt es mir einen Laufzeitfehler "9": Subscript out of range und es Punkte zu der Linie ( Diagramme("Chart41").ChartArea.Klar)

Danke,

  • ChartObjects("Chart41").Chart.ChartArea.Clear
  • Danke, sagt Sie das Element mit dem angegebenen Namen wurde nicht gefunden,, ich bin mir ziemlich sicher, dass ich änderte den Namen.. Was denkst du?
  • Ich schaffte es, es zu schaffen. Können Sie mir bitte sagen, warum mein ursprüngliche code nicht funktioniert?
  • Ein Diagramm-Objekt kann entweder ein Diagrammblatt, oder, wenn es gehostet wird, die auf einer regelmäßigen Arbeitsblatt wird es sein, die in einer ChartObject - auf einem Arbeitsblatt ist es die ChartObject was einen Namen hat, nicht den Chart.
  • Eine weitere Fragen, die scheinbar der Zeile [ Sheets("Tabelle1").ChartObjects("chart41").Chart.ChartArea.Clear] endet, löschen Sie das gesamte Diagramm,, also dann, wenn der code will fügen Sie Sie ein weiteres Diagramm auf Chart41, kann es nicht finden, weil es Zeile gelöscht es Weg!! @TimWilliams
  • Jede neue Entwicklung?

InformationsquelleAutor Saeed Bomba | 2016-08-04
Schreibe einen Kommentar