Notifications
Clear all

Variavel dentro de parenteses e aspas duplas

6 Posts
3 Usuários
0 Reactions
1,072 Visualizações
(@nicolas314)
Posts: 6
Active Member
Topic starter
 

Tudo bem com vocês? Espero que sim.

Sou juvena no VBA, gostaria da ajuda de vocês.

Meu código:

Sub inserir_formulas

ws = Cells(2, 2) 'conteudo da celula B2 que é um numero ex: 1234567890

BWS = "'Base " & ws & "'"

ws1 = "=IF(B13="""","""",INDEX(BWS !$G:$G,MATCH('Registro'!B13,'BWS'!$A:$A,0)))"

Minha dúvida é como fazer o excel entender que o "BWS" que está dentro da fórmula é uma variável e não um simples texto! Já tentei de tudo e não consigo, ele entende que é um texto.

 
Postado : 28/01/2016 2:01 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Pq ao inves de usar uma formula nao faz um loop

+ ou - assim

dim linha as long
dim ulinha as long
dim a as long
dim ws as intenger

linha =2
ulinha = range("1048576").end(xlup).row
ws = cells(2,2).value

for a = linha to ulinha

if cells(linha,2).value = ws then

'aqui vc pode escrever o que quisser o que esta abaixo e so um exemplo
msgbox = cells (linha,3)

linha = linha+1
next

end sub

DE forma geral é isso ( nao testei)

Pra que escrever a formula se pode escrever diretamente o resultado.

Mas de qualquer maneira

troque BWS! por BWS &

Que deve funcionar.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 28/01/2016 2:17 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

use assim:

ws1 = "=IF(B13="""","""",INDEX(" & BWS & "!$G:$G,MATCH('Registro'!B13,'BWS'!$A:$A,0)))"

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 28/01/2016 3:05 pm
(@nicolas314)
Posts: 6
Active Member
Topic starter
 

Pessoal,

Muito obrigado pelas respostas.
Amanha pela manha irei testar e posto aqui se deu certo!

 
Postado : 28/01/2016 8:30 pm
(@nicolas314)
Posts: 6
Active Member
Topic starter
 

Não deu certo! Acho que não tem como quando está dentro de aspas duplas :/

 
Postado : 29/01/2016 7:30 am
(@nicolas314)
Posts: 6
Active Member
Topic starter
 

Consegui de uma forma mais simples, apenas tirando o BWS de dentro das aspas duplas e concatenando.

ex:

ws1 = "=IF(B13="""","""",INDEX(" & BWS & "!$G:$G,MATCH('Registro'!B13," & BWS & "!$A:$A,0)))"

 
Postado : 29/01/2016 7:36 am