Makro do wyodrębniania danych z wykresu w programie Excel

Podsumowanie

W programie Microsoft Excel można pobierać dane z wykresu nawet wtedy, gdy dane są w zewnętrznym arkuszu lub skoroszycie. Jest to przydatne w sytuacjach, gdy wykres został utworzony lub połączony z innym plikiem, który jest niedostępny lub w jakiś sposób został uszkodzony. Gdy dane źródłowe do wykresu zostaną utracone, dane nadal można pobrać z samego wykresu przy użyciu makra Visual Basic for Applications firmy Microsoft.

Więcej informacji

Firma Microsoft podaje przykłady programowania tylko dla celów ilustracyjnych, nie udzielając żadnej rękojmi, wyrażonej wprost ani dorozumianej, w tym także, ale nie tylko, dorozumianej rękojmi co do przydatności handlowej lub do określonych celów. W tym artykule zakłada się, że czytelnik zna demonstrowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Wykwalifikowani pracownicy pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu, jak działa określona procedura, ale nie będą modyfikować tych przykładów ani dodawać żadnych funkcji i konstruować nowych procedur w celu dostosowania ich do określonych potrzeb użytkownika.

Poniższe przykładowe makro umieszcza dane źródłowe wykresu w arkuszu o nazwie "ChartData" w aktywnym skoroszycie, począwszy od pierwszej kolumny i pierwszego wiersza.

  1. Wprowadź następujący kod makra w arkuszu modułu:

    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. Wstaw nowy arkusz do skoroszytu i zmień jego nazwę na "ChartData" (bez cudzysłowów).

  3. Wybierz wykres, z którego chcesz wyodrębnić bazowe wartości danych.

    Uwaga

    Wykres można osadzić w arkuszu lub w osobnym arkuszu wykresu.

  4. Uruchom makro GetChartValues.

    Dane z wykresu są umieszczane w arkuszu "ChartData".

Aby wykres był interaktywny z odzyskanymi danymi, musisz połączyć wykres z nowym arkuszem danych, zamiast zachowywać linki do brakującego lub uszkodzonego skoroszytu.

  1. Wybierz wykres i kliknij serię, aby znaleźć nazwę arkusza, z którą wykres jest połączony w uszkodzonym lub brakującym skoroszycie. Nazwa arkusza jest wyświetlana w formule serii na pasku formuły.

    Uwaga

    Nazwa arkusza może być zgodna z nazwą skoroszytu, która jest ujęta w nawiasy kwadratowe, takie jak "[Book1]", i poprzedzać wykrzyknik "!" (lub apostrof i wykrzyknik "'!") wskazuje początek odwołania do komórki. Nazwa arkusza zawiera tylko znaki między zamkniętym symbolem nawiasu kwadratowego "]" a wykrzyknikiem (lub apostrofem i wykrzyknikiem). Jeśli jest bezpośrednio przed wykrzyknikiem, pozostaw apostrof, ponieważ apostrof nie może być ostatnim znakiem w nazwie arkusza.

  2. Kliknij dwukrotnie kartę nowego arkusza o nazwie ChartData.

  3. Wpisz oryginalną nazwę arkusza z kroku 1 nad wyróżnioną pozycją "ChartData" i naciśnij klawisz ENTER. Ta nazwa musi być taka sama jak nazwa arkusza z uszkodzonego lub brakującego skoroszytu.

  4. Jeśli ten plik nie został zapisany przy użyciu wykresu i arkusza danych, zapisz plik.

  5. W programie Excel 2003 lub Excel 2002 kliknij pozycję Linki w menu Edycja, a następnie kliknij pozycję Zmień źródło.

    W programie Excel 2007 kliknij kartę Dane , kliknij pozycję Edytuj linki w grupie Connenctions , a następnie kliknij pozycję Zmień źródło.

  6. W polu Plik źródłowy wybierz link do zmiany, a następnie kliknij pozycję Zmień źródło.

  7. W oknie dialogowym Zmienianie łączy wybierz nowy plik z odzyskanymi danymi i wykresem, a następnie kliknij przycisk OK.

  8. Jeśli zostanie wyświetlony następujący komunikat o błędzie

    Formuła zawiera nieprawidłowe odwołanie zewnętrzne do arkusza.

    Prawdopodobnie nazwa arkusza wpisana w kroku 3 nie jest taka sama jak oryginalna. Wstecz do kroku 1.

  9. Pole Plik źródłowy może być teraz puste. Oznacza to, że wszystkie linki wskazują aktywny plik, a nie brakujący lub uszkodzony plik. Kliknij przycisk Zamknij.

Wykres odwołuje się teraz do odzyskanych danych i wchodzi w interakcje z nimi w arkuszu o zmienionej nazwie w aktywnym skoroszycie.