2017-07-20 3 views
0

Ich versuche, zwei Arbeitsblätter einer vorhandenen Arbeitsmappe in eine neue Arbeitsmappe zu kopieren. Eines der Blätter hat Diagramme. Diese Diagramme verweisen immer noch auf die alte Arbeitsmappe und ich möchte die Datenquelle in eine neue Datei ändern (das zweite Blatt, das ich kopiere, ist das Datenblatt). Ich schrieb den folgenden Code und ich erhalte die obenVBA-Fehler: Abrufen des Laufzeitfehlers '91': Objektvariable oder Mit Blockvariable nicht festgelegt Beim Versuch, Diagrammdaten zu ändern

erwähnten Fehler
NewBook.Sheets(1).Activate 
    ActiveWorkbook.ActiveSheet.ChartObjects("Chart 2").Activate 
    ActiveChart.SetSourceData Source:=NewBook.Sheets(2).Range("B14:E20") 

ich den Fehler denken könnte sein, dass, wenn ich das Diagramm und ändern Daten auswählen, die vorherigen Arbeitsmappe aktiviert ist, und somit gibt es nicht mehr ein aktives Blatt . Also habe ich versucht, diesen Code

NewBook.Sheets(1).Charts("Chart 2").SetSourceData Source:=NewBook.Sheets(2).Range("B5:F11") 

ich jetzt immer die Laufzeitfehler 438. mir jemand dabei helfen könnte und mir helfen zu verstehen, was passiert. Vielen Dank im Voraus!

Antwort

1

Keine Notwendigkeit, eines der Activate Zeug zu verwenden. Sie versuchen, es los zu werden, war richtig. Nur eine kleine Modifikation wird benötigt:

NewBook.Sheets(1).ChartObjects("Chart 2").Chart.SetSourceData _ 
    NewBook.Sheets(2).Range("B5:F11") 
Verwandte Themen