Página 1 de 1

Formula em VBA

Enviado: 04 Out 2019 às 09:40
por EmersonSwistalski
Bom dia! Sou iniciante em VBA e estou com uma duvida.
Estou tentando atribuir a formula na celula seguinte e sempre obtenho erro, alguem teria alguma solucao com formula parecida para o meu problema? Segue formula que preciso converter para o vba abaixo:

=INDEX(INDIRECT($C$5&"!A3:A33"),7)

ps, meu excel ta em ingles

Re: Formula em VBA

Enviado: 04 Out 2019 às 09:51
por osvaldomp
Experimente:
Código: Selecionar todos
ActiveCell = "=INDEX(INDIRECT($C$5&""!A3:A33""),7)"

Formula em VBA

Enviado: 04 Out 2019 às 10:29
por Jimmy
Emerson,

Não sei se a causa do erro é isso, mas faço uma observação.

As aspas delimitam os strings, assim,VarA = "CASA" atribui a palavra CASA à variável VarA.

Se você precisar que uma aspa faça parte do conteúdo do string, por exemplo, entre o CA e o SA (assim: CA"SA), se digitar assim VarA = "CA"SA" o VB pensará que a segunda aspa está fechando a primeira, não saberá o que fazer com SA, e achará que a terceira aspa não foi fechado, pois interpretará que a segunda aspa não é parte do texto, e sim um delimitador.

Para contornar isso, você deve usar duas aspas seguidas. Isso indicará ao VB que alí não se trata de um delimitador, mas de um caractere aspa. Ficaria assim: Var = "CA""SA", i isso atribuirá CA"SA à variável VarA.

Se esta mensagem colabora para a solução do problema, peço que dê um Like, clicando no botão com o "positivo", acima e a direita.

Jimmy San Juan

Re: Formula em VBA

Enviado: 04 Out 2019 às 10:46
por EmersonSwistalski
osvaldomp escreveu:Experimente:
Código: Selecionar todos
ActiveCell = "=INDEX(INDIRECT($C$5&""!A3:A33""),7)"
Jimmy escreveu:Emerson,

Não sei se a causa do erro é isso, mas faço uma observação.

As aspas delimitam os strings, assim,VarA = "CASA" atribui a palavra CASA à variável VarA.

Se você precisar que uma aspa faça parte do conteúdo do string, por exemplo, entre o CA e o SA (assim: CA"SA), se digitar assim VarA = "CA"SA" o VB pensará que a segunda aspa está fechando a primeira, não saberá o que fazer com SA, e achará que a terceira aspa não foi fechado, pois interpretará que a segunda aspa não é parte do texto, e sim um delimitador.

Para contornar isso, você deve usar duas aspas seguidas. Isso indicará ao VB que alí não se trata de um delimitador, mas de um caractere aspa. Ficaria assim: Var = "CA""SA", i isso atribuirá CA"SA à variável VarA.

Se esta mensagem colabora para a solução do problema, peço que dê um Like, clicando no botão com o "positivo", acima e a direita.

Jimmy San Juan
Deu certo colegas, obrigado!