Compartilhar via


Macro para extrair dados de um gráfico no Excel

Resumo

No Microsoft Excel, você pode recuperar dados de um gráfico mesmo quando os dados estão em uma planilha ou pasta de trabalho externa. Isso é útil em situações em que o gráfico foi criado ou vinculado a outro arquivo que não está disponível ou foi danificado de alguma forma. Quando os dados de origem de um gráfico são perdidos, os dados ainda podem ser recuperados do próprio gráfico, usando uma macro do Microsoft Visual Basic for Applications.

Informações adicionais

A Microsoft oferece exemplos de programação somente para ilustração, sem garantias expressas ou implícitas. Isso inclui, mas não está limitado a, as garantias implícitas de qualidade comercial ou conformidade para uma determinada finalidade. Este artigo supõe que você conhece a linguagem de programação que está sendo demonstrada e as ferramentas usadas nos processos de criação e depuração. Os engenheiros de suporte da Microsoft podem ajudá-lo, fornecendo a explicação da funcionalidade de determinado procedimento, mas não modificarão estes exemplos para fornecer funcionalidade adicional nem criarão procedimentos específicos para atender às suas necessidades específicas.

A macro de exemplo a seguir coloca os dados de origem do gráfico em uma planilha chamada "ChartData" na pasta de trabalho ativa, começando na primeira coluna e na primeira linha.

  1. Insira o seguinte código de macro em uma planilha de módulos:

    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. Insira uma nova planilha em sua pasta de trabalho e renomeie-a como "ChartData" (sem as aspas).

  3. Selecione o gráfico do qual você deseja extrair os valores de dados subjacentes.

    Observação

    O gráfico pode ser inserido em uma planilha ou em uma planilha de gráficos separada.

  4. Execute a macro GetChartValues.

    Os dados do gráfico são colocados na planilha "ChartData".

Para que o gráfico seja interativo com os dados recuperados, você precisa vincular o gráfico à nova folha de dados em vez de manter os links para a pasta de trabalho ausente ou danificada.

  1. Selecione o gráfico e clique em uma série para encontrar o nome da planilha ao qual o gráfico está vinculado na pasta de trabalho danificada ou ausente. O nome da planilha aparece na fórmula da série na barra de fórmulas.

    Observação

    O nome da planilha pode seguir o nome da pasta de trabalho, que está fechado em colchetes como "[Book1]", e preceder o ponto de exclamação "!" (ou apóstrofe e ponto de exclamação "'!") que indica o início de uma referência de célula. O nome da planilha inclui apenas os caracteres entre o símbolo de colchete fechado "]" e o ponto de exclamação (ou apóstrofe e ponto de exclamação). Deixe de fora qualquer apóstrofo se for imediatamente antes do ponto de exclamação, pois um apóstrofe não pode ser o último caractere em um nome de planilha.

  2. Clique duas vezes na guia da nova planilha chamada ChartData.

  3. Digite o nome da planilha original da etapa 1 sobre o "ChartData" realçado e pressione ENTER. Esse nome deve ser o mesmo que o nome da planilha da pasta de trabalho danificada ou ausente.

  4. Se você não salvou esse arquivo com o gráfico e a folha de dados, salve o arquivo.

  5. No Excel 2003 ou Excel 2002, clique em Links no menu Editar e clique em Alterar Fonte.

    No Excel 2007, clique na guia Dados , clique em Editar Links no grupo Connenctions e clique em Alterar Fonte.

  6. Na caixa Arquivo de Origem, selecione o link a ser alterado e clique em Alterar Fonte.

  7. Na caixa de diálogo Alterar Links, selecione o novo arquivo com os dados e o gráfico recuperados e clique em OK.

  8. Se você receber a seguinte mensagem de erro

    Sua fórmula contém uma referência externa inválida a uma planilha.

    é provável que o nome da planilha que você digitou na etapa 3 não seja o mesmo que o original. Voltar para a etapa 1.

  9. A caixa Arquivo de Origem agora pode estar em branco. Isso indica que todos os links apontam para o arquivo ativo em vez do arquivo ausente ou danificado. Clique em Fechar.

O gráfico agora faz referência e interage com os dados recuperados na planilha renomeada na pasta de trabalho ativa.