Isso seria algo que poderia ser realizado no Microsoft Excel usando um recurso personalizado macro (" ... pedaços de código armazenados na pasta de trabalho que podem automatizar tarefas repetitivas e rapidamente colocar seus dados em ordem. "), vou tentar resolver o problema, fornecer uma solução utilizável e depois de algumas tarefas domésticas, instruções sobre como usá-lo.
O problema
Vamos resolver o problema usando os nomes arbitrários Sheet
e Column
:
- Recebemos duas planilhas,
Sheet1
e Sheet2
- Contidos em
Sheet1
, os valores são armazenados em Column A
- Contidos em
Sheet2
, temos Column B
, que pode ou não conter valores
- Queremos que todas as alterações feitas em
Sheet1
: Column A
sejam automaticamente copiadas para Sheet2
: Column B
A solução
Ao criar uma macro que é acionada por Worksheet_Change
, podemos fazer com que a macro copie automaticamente os valores, explicarei como isso funciona depois:
' I have included some brief comments to help understand what is going on
' Automatically triggers when a change to a cell(s) occurs on the Sheet
Private Sub Worksheet_Change(ByVal Target As Range)
' Target is an object, it also tells us where the change occurred
' Did the change occur in column A (A = 1, B = 2, etc)?
If (Target.Column = 1) Then
' Get the ROW of where the change occurred
Dim row as Integer = Target.Row
' Update Sheet2 using our row, but use column B
Sheet2.Cells(row, "B") = Target.Value
End If
End Sub
Serviço de limpeza
Por favor lembre-se:
- Macros como a que escrevi acima geralmente só funcionam no Microsoft Excel
- As macros costumam ser meios de transmissão de vírus de computador e é preciso ter cuidado para não ativar e / ou executar macros de fontes não confiáveis - dito se você optar por usar qualquer uma das instruções que eu forneci você faz por sua conta e risco
- As macros residem dentro da pasta de trabalho (planilha) na qual você as escreve e são salvas sempre que você salva normalmente; no entanto:
- Nas versões modernas do Excel, talvez seja necessário salvar sua pasta de trabalho como um tipo de arquivo diferente (Pasta de trabalho habilitada para macro do Excel .xlsm) para que seja mantido
- A menos que você assine digitalmente uma macro (fora do escopo deste guia), talvez seja necessário ativar a macro toda vez que carregar a pasta de trabalho
Como fazer
Para começar a adicionar essa macro à sua pasta de trabalho, primeiro carregue a planilha aberta que deseja usar e, em seguida, ative o Microsoft Visual Basic para Aplicativos (referido como VBA) usando as chaves Alt + F11
.
(Neste ponto eu maximizaria a janela do VBA para evitar confusão e possíveis distrações)
Com a janela do VBA ativa, você verá no lado esquerdo uma pequena janela interna identificada
Project - VBAProject
Isso geralmente contém a hierarquia do projeto e é onde podemos adicionar macros à nossa pasta de trabalho. O lugar que queremos adicionar nossa macro é Sheet1 (Sheet1)
.
Sheet1 (Sheet1)
é um object
chamado Sheet1
, que é uma representação de programação da planilha. Você pode ver o nome que você faria da planilha que você normalmente editaria no Excel contido dentro dos parênteses, neste caso ele também é chamado de Planilha1.
Para adicionar uma macro a Sheet1
, você pode right-click
e, em seguida, clicar em View Code
ou simplesmente clicar duas vezes para abri-la na janela Code
.
A partir daqui, você pode copiar e colar minha solução para seguir em frente.
Se você gostaria de escrever macros, eu recomendo que você passe pelo link na primeira página, assim como leia o Introdução às macros personalizadas no Excel .
Atenciosamente