Procurei em volta para tentar resolver isso, mas não estou familiarizado com a codificação.
Aqui está minha linha de código,
='[WorkBook]BOM'!G6
O que eu quero fazer é fazer a chamada da pasta de trabalho para uma célula para que eu possa substituir em massa todos os nomes da 'pasta de trabalho' sem localizar e substituir.
Essencialmente, algo assim (embora este código não funcione, é apenas para referência)
='[=E1]BOM'!G6
Então, na célula E1, eu poderia inserir qualquer texto que quisesse, para substituir o nome das pastas de trabalho. Estou tentando encontrar a fórmula para fazer isso.
Responder1
Você deve usar a INDIRECT()
função para avaliar uma string de texto como uma função.
=INDIRECT("'["& E1 & "]BOM'!G6")
Observe que a INDIRECT()
função só retornará o valor se a pasta de trabalho referenciada estiver aberta. Caso contrário, retornará um #REF!
erro.
Responder2
INDIRECT
não funcionará com pastas de trabalho externas fechadas. Sua melhor aposta na automação parece ser colocar o caminho da pasta de trabalho em uma célula e escrever uma macro que localizará/substituirá todas as ocorrências do nome da pasta de trabalho antigo e substituirá pelo novo nome da pasta de trabalho.
Responder3
Minha solução permitiria fazer referência a um intervalo, somente se você os nomeasse primeiro.
Por exemplo, você nomeia o intervalo A1:A100 como MyRange na pasta de trabalho 1
Então, em sua pasta de trabalho atual, você pode inserir "MyRange" em E1 na pasta de trabalho 2
então use INDIRETO(E1)