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

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 300643 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Ten artykuł został opublikowany wcześniej pod numerem PL300643
Wersja tego artykułu dla programu Microsoft Excel 2000: 213814.
Wersja tego artykułu dla programu Microsoft Excel 98 i starszych wersji: 137016.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

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

Numer ID artykułu: 300643 - Ostatnia weryfikacja: 22 lutego 2007 - Weryfikacja: 4.0
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
Słowa kluczowe: 
kbdtacode kbhowto kbprogramming KB300643

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com