Makro zum Extrahieren von Daten aus einem Diagramm in Excel

Zusammenfassung

In Microsoft Excel können Sie Daten aus einem Diagramm auch dann abrufen, wenn sich die Daten in einem externen Arbeitsblatt oder einer externen Arbeitsmappe befinden. Dies ist nützlich in Situationen, in denen das Diagramm aus einer anderen Datei erstellt oder mit dieser verknüpft wurde, die nicht verfügbar ist oder in irgendeiner Weise beschädigt wurde. Wenn die Quelldaten in einem Diagramm verloren gehen, können die Daten mithilfe eines Microsoft Visual Basic for Applications-Makros weiterhin aus dem Diagramm selbst abgerufen werden.

Weitere Informationen

Die Verwendung der hier aufgeführten Informationen, Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionsfähigkeit sowie ohne Anspruch auf Support zur Verfügung. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen. Die Microsoft Support-Spezialisten können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, jedoch werden sie diese Beispiele nicht in Bezug auf eine erweiterte Funktionalität verändern, noch werden sie Prozeduren entwickeln, die auf Ihre besonderen Bedürfnisse zugeschnitten sind.

Das folgende Beispielmakro platziert die Quelldaten des Diagramms in einem Arbeitsblatt namens "ChartData" in der aktiven Arbeitsmappe, beginnend in der ersten Spalte und ersten Zeile.

  1. Geben Sie den folgenden Makrocode in ein Modulblatt ein:

    Sub GetChartValues()
       Dim NumberOfRows As Integer
       Dim X As Object
       Counter = 2
    
       ' Calculate the number of rows of data.
       NumberOfRows = UBound(ActiveChart.SeriesCollection(1).Values)
    
       Worksheets("ChartData").Cells(1, 1) = "X Values"
    
       ' Write x-axis values to worksheet.
       With Worksheets("ChartData")
          .Range(.Cells(2, 1), _
          .Cells(NumberOfRows + 1, 1)) = _
          Application.Transpose(ActiveChart.SeriesCollection(1).XValues)
       End With
    
       ' Loop through all series in the chart and write their values to
       ' the worksheet.
       For Each X In ActiveChart.SeriesCollection
          Worksheets("ChartData").Cells(1, Counter) = X.Name
    
          With Worksheets("ChartData")
             .Range(.Cells(2, Counter), _
             .Cells(NumberOfRows + 1, Counter)) = _
             Application.Transpose(X.Values)
          End With
    
          Counter = Counter + 1
       Next
    
    End Sub
    
  2. Fügen Sie ein neues Arbeitsblatt in Die Arbeitsmappe ein, und benennen Sie es in "ChartData" (ohne Anführungszeichen) um.

  3. Wählen Sie das Diagramm aus, aus dem Sie die zugrunde liegenden Datenwerte extrahieren möchten.

    Hinweis

    Das Diagramm kann entweder auf einem Arbeitsblatt oder auf einem separaten Diagrammblatt eingebettet werden.

  4. Führen Sie das Makro GetChartValues aus.

    Die Daten aus dem Diagramm werden im Arbeitsblatt "ChartData" platziert.

Damit das Diagramm mit den wiederhergestellten Daten interaktiv ist, müssen Sie das Diagramm mit dem neuen Datenblatt verknüpfen, anstatt die Links zur fehlenden oder beschädigten Arbeitsmappe beizubehalten.

  1. Wählen Sie das Diagramm aus, und klicken Sie auf eine Reihe, um den Blattnamen zu finden, mit dem das Diagramm in der beschädigten oder fehlenden Arbeitsmappe verknüpft ist. Der Blattname wird in der Reihenformel in der Bearbeitungsleiste angezeigt.

    Hinweis

    Der Blattname kann dem Namen der Arbeitsmappe folgen, der in eckige Klammern wie "[Book1]" eingeschlossen ist und dem Ausrufezeichen "!" vorangestellt ist. (oder Apostroph und Ausrufezeichen "'!") , der den Anfang eines Zellbezugs angibt. Der Blattname enthält nur die Zeichen zwischen dem geschlossenen eckigen Klammersymbol "]" und dem Ausrufezeichen (oder Apostroph und Ausrufezeichen). Lassen Sie alle Apostrophe weg, wenn es sich unmittelbar vor dem Ausrufezeichen befindet, da ein Apostroph nicht das letzte Zeichen in einem Blattnamen sein kann.

  2. Doppelklicken Sie auf die Registerkarte des neuen Blatts mit dem Namen ChartData.

  3. Geben Sie den ursprünglichen Blattnamen aus Schritt 1 über dem hervorgehobenen "ChartData" ein, und drücken Sie die EINGABETASTE. Dieser Name muss mit dem Namen des Blatts aus der beschädigten oder fehlenden Arbeitsmappe übereinstimmen.

  4. Wenn Sie diese Datei nicht mit dem Diagramm und dem Datenblatt gespeichert haben, speichern Sie die Datei.

  5. Klicken Sie in Excel 2003 oder Excel 2002 im Menü Bearbeiten auf Links, und klicken Sie dann auf Quelle ändern.

    Klicken Sie in Excel 2007 auf die Registerkarte Daten, klicken Sie in der Gruppe Verknüpfungen auf Links bearbeiten, und klicken Sie dann auf Quelle ändern.

  6. Wählen Sie im Feld Quelldatei den zu ändernden Link aus, und klicken Sie dann auf Quelle ändern.

  7. Wählen Sie im Dialogfeld Links ändern die neue Datei mit den wiederhergestellten Daten und diagramm aus, und klicken Sie dann auf OK.

  8. Wenn die folgende Fehlermeldung angezeigt wird

    Die Formel enthält einen ungültigen externen Verweis auf ein Arbeitsblatt.

    Es ist wahrscheinlich, dass der Blattname, den Sie in Schritt 3 eingegeben haben, nicht mit dem Ursprünglichen identisch ist. Zurück zu Schritt 1.

  9. Das Feld Quelldatei ist jetzt möglicherweise leer. Dies gibt an, dass alle Links auf die aktive Datei und nicht auf die fehlende oder beschädigte Datei verweisen. Klicken Sie auf Schließen.

Das Diagramm verweist nun auf die wiederhergestellten Daten auf dem umbenannten Blatt in der aktiven Arbeitsmappe und interagiert damit.