Makro pro extrahování dat z grafu v Excelu

Souhrn

V Microsoft Excelu můžete načíst data z grafu, i když jsou data v externím listu nebo sešitu. To je užitečné v situacích, kdy byl graf vytvořen nebo propojen s jiným souborem, který není k dispozici nebo byl nějakým způsobem poškozen. Při ztrátě zdrojových dat do grafu lze data stále načíst ze samotného grafu pomocí makra jazyka Microsoft Visual Basic for Applications.

Další informace

Společnost Microsoft poskytuje ukázky programování pouze pro ilustraci, bez žádné záruky výslovně uvedené nebo odvozené, včetně, bez omezení, odvozených záruk vztahujících se k obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že uživatel je obeznámen s programovacím jazykem, který je předmětem ukázky, a s nástroji použitými pro vytvoření a ladění skriptu. Pracovníci technické podpory společnosti Microsoft mohou vysvětlit funkce určitého postupu, nemohou však následující příklady rozšířit o další funkce nebo konstrukce podle konkrétních požadavků uživatele.

Následující ukázkové makro umístí zdrojová data grafu do listu s názvem ChartData v aktivním sešitu počínaje prvním sloupcem a prvním řádkem.

  1. Do listu modulu zadejte následující kód makra:

    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. Vložte do sešitu nový list a přejmenujte ho na ChartData (bez uvozovek).

  3. Vyberte graf, ze kterého chcete extrahovat podkladové datové hodnoty.

    Poznámka

    Graf může být vložený na list nebo na samostatný list s grafem.

  4. Spusťte makro GetChartValues.

    Data z grafu se umístí do listu ChartData.

Pokud chcete, aby byl graf interaktivní s obnovenými daty, musíte graf propojit s novým datovým listem a nezachovávejte propojení s chybějícím nebo poškozeným sešitem.

  1. Vyberte graf a kliknutím na řadu vyhledejte název listu, se kterým je graf propojený, v poškozeném nebo chybějícím sešitu. Název listu se zobrazí ve vzorci řady na řádku vzorců.

    Poznámka

    Název listu může následovat za názvem sešitu, který je uzavřený v hranatých závorkách, například [Kniha1], a před vykřičníkem "! (nebo apostrof a vykřičník "'!") označuje začátek odkazu na buňku. Název listu obsahuje pouze znaky mezi symbolem uzavřené hranaté závorky "]" a vykřičníkem (nebo apostrofem a vykřičníkem). Vynechejte apostrof, pokud je bezprostředně před vykřičníkem, protože apostrof nemůže být posledním znakem v názvu listu.

  2. Poklikejte na ouško nového listu s názvem ChartData.

  3. Zadejte název původního listu z kroku 1 nad zvýrazněnou položku ChartData a stiskněte enter. Tento název musí být stejný jako název listu z poškozeného nebo chybějícího sešitu.

  4. Pokud jste tento soubor s grafem a datovým listem neuložili, uložte ho.

  5. V aplikaci Excel 2003 nebo Excel 2002 klikněte v nabídce Úpravy na odkazy a potom klikněte na Změnit zdroj.

    V excelu 2007 klikněte na kartu Data , klikněte na Upravit odkazy ve skupině Spojení a potom klikněte na Změnit zdroj.

  6. V poli Zdrojový soubor vyberte odkaz, který chcete změnit, a potom klikněte na Změnit zdroj.

  7. V dialogovém okně Změnit propojení vyberte nový soubor s obnovenými daty a grafem a klikněte na OK.

  8. Pokud se zobrazí následující chybová zpráva

    Vzorec obsahuje neplatný externí odkaz na list.

    je pravděpodobné, že název listu, který jste zadali v kroku 3, není stejný jako původní. Zpět ke kroku 1.

  9. Pole Zdrojový soubor teď může být prázdné. To znamená, že všechny odkazy ukazují na aktivní soubor, nikoli na chybějící nebo poškozený soubor. Klikněte na Zavřít.

Graf teď odkazuje na obnovená data na přejmenovaném listu v aktivním sešitu a pracuje s nimi.