Makro umożliwiające wyodrębnianie danych z wykresu w programie Excel

Wersja tego artykułu dla programu Microsoft Excel 2000: 213814 .
Wersja tego artykułu dla programu Microsoft Excel 98 i starszych wersji: 137016 .

Streszczenie

W programie Microsoft Excel można pobierać dane z wykresu, nawet jeśli znajdują się one w zewnętrznym arkuszu lub skoroszycie. Jest to przydatne zwłaszcza w sytuacjach, gdy wykres został utworzony z innego pliku lub jest z nim połączony, a plik ten jest niedostępny lub został uszkodzony. W przypadku utraty danych źródłowych wykresu można je nadal odzyskać z samego wykresu za pomocą makra Microsoft Visual Basic for Applications.

Więcej informacji

Firma Microsoft podaje przykłady programowania tylko dla celów ilustracyjnych, nie udzielając żadnej rękojmi, wyrażonej wprost lub domyślnie, w tym także, bez ograniczeń, domyślnej 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 w celu dodania jakichś funkcji ani konstruować nowych procedur w celu dostosowania ich do potrzeb użytkownika.


Następujące przykładowe makro umieszcza dane źródłowe wykresu w aktywnym skoroszycie, w arkuszu o nazwie „ChartData”, rozpoczynając w pierwszej kolumnie i w pierwszym wierszu.
  1. Wprowadź następujący kod makro 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 do skoroszytu nowy arkusz i zmień jego nazwę na „ChartData” (bez cudzysłowu).
  3. Wybierz wykres, z którego chcesz wyodrębnić podstawowe wartości danych.

    UWAGA: Wykres może zostać osadzony w skoroszycie lub w osobnym arkuszu wykresu.
  4. Uruchom makro GetChartValues.

    Dane z wykresu są umieszczane w arkuszu „ChartData”.

Sposób połączenia wykresu z odzyskanymi danymi

Aby wykres współdziałał z odzyskanymi danymi, należy połączyć go z nowym arkuszem danych, nie zachowując łączy do brakującego lub uszkodzonego skoroszytu.
  1. Zaznacz wykres i wybierz serię, aby znaleźć nazwę arkusza w uszkodzonym lub brakującym skoroszycie, z którym połączony jest wykres. Nazwa arkusza zostanie wyświetlona w formule serii na pasku formuły.

    UWAGA: Nazwa arkusza może występować po nazwie skoroszytu zawartej w nawiasie kwadratowym, np. „[Skoroszyt1]” i przed wykrzyknikiem „'!” (lub apostrofem i wykrzyknikiem „!”) wskazującym początek adresu komórki. Nazwa arkusza obejmuje wyłącznie znaki zawarte między zamknięciem nawiasu kwadratowego „]” i wykrzyknikiem (lub apostrofem i wykrzyknikiem). Należy pominąć wszystkie apostrofy bezpośrednio przed wykrzyknikiem, 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 w podświetlonym obszarze „ChartData” i naciśnij klawisz ENTER. Nazwa musi być taka sama jak nazwa arkusza z uszkodzonego lub brakującego skoroszytu.
  4. Jeśli plik z wykresem i arkuszem danych nie został zapisany, zapisz go.
  5. W programie Excel 2003 lub Excel 2002 kliknij polecenie Łącza w menu Edycja, a następnie kliknij polecenie Zmień źródło.

    W programie Excel 2007 kliknij kolejno kartę Dane, polecenie Edytuj łącza w grupie Połączenia oraz polecenie Zmień źródło.
  6. W polu Plik źródłowy zaznacz łącze, które ma zostać zmienione, a następnie kliknij polecenie 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 pojawi się następujący komunikat o błędzie
    Your formula contains an invalid external reference to a worksheet. (Formuła zawiera nieprawidłowe odwołanie zewnętrzne do skoroszytu),
    prawdopodobnie nazwa skoroszytu wprowadzona w kroku 3 nie jest taka sama jak oryginał. Wróć do kroku 1.
  9. Pole Plik źródłowy może być teraz puste. Oznacza to, że wszystkie łącza wskazują na aktywny plik, a nie na brakujący lub uszkodzony plik. Kliknij przycisk Zamknij.
Wykres odwołuje się teraz do odzyskanych danych w arkuszu o zmienionej nazwie w aktywnym skoroszycie i współdziała z nimi.
Właściwości

Identyfikator artykułu: 300643 — ostatni przegląd: 22.02.2007 — zmiana: 1

Opinia