Insira uma fórmula na mesma célula em cada planilha usando o loop

3

Usando a função de loop do VBA, estou querendo inserir a mesma fórmula na mesma célula em cada planilha da minha pasta de trabalho.

Eu tentei o seguinte código, mas ele não percorre todas as planilhas. Apenas atualiza aquele que por acaso é selecionado por padrão:

Sub insertformula()

Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
    Range("D7").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(R[-5]C[-1],'SHEET ALL WILL REFERENCE'!C[-2]:C[-1],2,FALSE)"

Next

End Sub

O que eu sinto que está impedindo esse código de percorrer todas as planilhas?

Obrigado,

    
por rencjam 10.03.2016 / 21:46

3 respostas

4

Você não precisa usar o VBA ou loops para fazer isso. Se você estiver na sua planilha principal, clique com o controle nas guias da planilha, uma de cada vez, até que cada uma delas seja destacada.

Quando todas as planilhas nas quais você deseja copiar a fórmula estiverem destacadas, você poderá digitar sua fórmula na célula e ela será automaticamente copiada para a célula exata nas respectivas planilhas. Quando você terminar com isso, certifique-se de clicar em uma folha individual para desmarcar as outras.

    
por 10.03.2016 / 22:07
2

Você não precisa Loop . Isso aplicará a fórmula a todas as folhas ao mesmo tempo:

Sub hfdjs()
    Sheets.Select
    Range("D7").Activate
    ActiveCell.FormulaR1C1 = "=VLOOKUP(R[-5]C[-1],'SHEET ALL WILL REFERENCE'!C[-2]:C[-1],2,FALSE)"
End Sub

EDIT # 1:

Digamos que temos 5 planilhas com nomes padrão e queremos compactar uma fórmula em todas elas, exceto nas duas primeiras planilhas.

Sub FormulaBlaster()
    Sheets(Array("Sheet3", "Sheet4", "Sheet5")).Select
    Range("B9").Select
    Selection.Formula = "=1+2"
End Sub
    
por 10.03.2016 / 21:53
1

Você não está especificando qual faixa você gostaria de usar. Você também pode especificar a fórmula para o intervalo sem selecioná-lo primeiro

Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
    ws.Range("D7").FormulaR1C1 = "=VLOOKUP(R[-5]C[-1],'SHEET ALL WILL REFERENCE'!C[-2]:C[-1],2,FALSE)"

Next
    
por 10.03.2016 / 21:53