Limitar vba à folha especificada

3

Eu tenho um código que preenche automaticamente as fórmulas até a última linha. Eu quero esse código para trabalhar em duas folhas (com intervalos diferentes) e ter um botão em uma folha de controle separada.

O problema é que, quando eu executo a macro a partir da folha de controle, ela afeta a folha de controle, mesmo que eu tenha especificado as planilhas de destino no código. Existe uma maneira de contornar isso?

Sub FormulaFill()


    Dim DataLR As Long
    DataLR = Worksheets("Data").UsedRange.Find("*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
    Range("I2:M2").AutoFill Destination:=Range("I2:M" & DataLR)

    Dim DataKeywordLR As Long
    DataKeywordLR = Worksheets("data keyword").UsedRange.Find("*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
    Range("I2").AutoFill Destination:=Range("I2:" & DataKeywordLR)
    
por Corrado_ 25.11.2016 / 11:11

1 resposta

1

Seu código original referencia as outras planilhas para a atribuição de DataLR e DataKeywordLR , mas não faz isso para a linha de acompanhamento que executa o preenchimento automático. Como tal, você precisa adicionar uma referência a ambas as linhas que executam o preenchimento automático. Uma solução poderia ser assim:

Sub FormulaFill()
    Dim DataLR As Long
    DataLR = Worksheets("Data").UsedRange.Find("*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
    Worksheets("Data").Range("I2:M2").AutoFill Destination:=Worksheets("Data").Range("I2:M" & DataLR)

    Dim DataKeywordLR As Long
    DataKeywordLR = Worksheets("data keyword").UsedRange.Find("*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
    Worksheets("data keyword").Range("I2").AutoFill Destination:=Worksheets("data keyword").Range("I2:" & DataKeywordLR)

Observe o Worksheets adicionado antes do intervalo em cada bloco.

    
por 25.11.2016 / 14:19

Tags