Como impedir que o VBA escrito para uma pasta de trabalho do Excel afete outras pastas de trabalho

1

Eu tenho a função VBA no Excel, conforme indicado abaixo, para escolher valores da célula correspondente na planilha anterior. Funciona bem quando apenas esta pasta de trabalho (onde esta fórmula está presente) está aberta. Se eu abrir outras pastas de trabalho do Excel, por exemplo, workbook2, esta função prevsheet na primeira pasta de trabalho irá pegar os valores da segunda pasta de trabalho, atrapalhando todos os valores da primeira pasta de trabalho. Como posso modificar essa fórmula para que essa função funcione / capte valores para essa pasta de trabalho em vez de outras pastas de trabalho abertas.

Function PrevSheet(rCell As Range)
        Application.Volatile

        Dim i As Integer
        i = rCell.Cells(1).Parent.Index
        PrevSheet = Sheets(i - 1).Range(rCell.Address)
    End Function
    
por Siva Prasad 17.12.2016 / 16:37

1 resposta

1

Eu encontrei a solução para isso.

adicionando "ThisWorkbook" à seguinte linha de código

PrevSheet = Sheets(i - 1).Range(rCell.Address)

tornando-se como

PrevSheet = ThisWorkbook.Sheets(i - 1).Range(rCell.Address)
    
por 17.12.2016 / 17:00