Notifications
Clear all

Como acessar variável por string?

8 Posts
5 Usuários
0 Reactions
1,497 Visualizações
(@wilker12)
Posts: 36
Eminent Member
Topic starter
 

Olá,

Como acesso uma variável montando o nome dela como string?
Por exemplo, posso acessar o CheckBox10 referenciando OLEObjects("CheckBox" & "10").Object
Quero acessar a variável Var10 usando algo do tipo Var2 = FunçãoQualquer("Var" & "10")

Grato! ;)

 
Postado : 14/07/2018 10:39 am
(@mprudencio)
Posts: 2749
Famed Member
 

Não entendi o que vc pretende fazer.

Vc quer colocar um objeto na variavel??

Dim Var as string

Var = checkbox1

Qual a ideia final?

Explica ai!

Se a ideia é pegar o valor da checkbox faz com if ou um select case.

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 : 14/07/2018 10:45 am
(@wilker12)
Posts: 36
Eminent Member
Topic starter
 

O checkbox foi só um exemplo. A ideia é acessar uma variável montando o nome dela por pedaços de string.

 
Postado : 14/07/2018 10:48 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!

Veja se este código de exemplo te ajuda:

Sub Teste()
    Dim k As Integer
    
    For k = 1 To 2
        MsgBox ActiveSheet.OLEObjects("CheckBox" & k).Name
    Next
End Sub

Abraço

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

 
Postado : 14/07/2018 11:38 am
(@wilker12)
Posts: 36
Eminent Member
Topic starter
 

Não campeão, foi o que eu disse na resposta anterior: o checkbox foi só exemplo,
quero acessar VARIÁVEIS não objetos ou controles.

 
Postado : 14/07/2018 12:10 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Da um exemplo melhor pq agora ficou foi mais confuso.

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 : 15/07/2018 8:38 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Olá, Wilker12

Também não sei se entendi corretamente, mas no meu entendimento nessas situações o melhor seria ao invés de Var10, usar algo como Var(10), ou seja, uma matriz daquele tipo de objeto ou conteúdo onde o índice fica flexível como um parâmetro passável.
Exemplo:

Sub VariávelIndexada()
  Dim Var(1 To 5) As msforms.CheckBox
  Dim i As Integer, Var1Qualquer As msforms.CheckBox, Var2Qualquer As Boolean
  For i = 1 To 5
    Set Var(i) = Plan1.OLEObjects("CheckBox" & i).Object
  Next i
  'Uso - exemplos:
  Set Var1Qualquer = Var(5)
  Var2Qualquer = Var(2).Value
End Sub

 
Postado : 16/07/2018 4:53 pm
(@klarc28)
Posts: 971
Prominent Member
 
dim var(1 to 10) as variant

Var2 = FunçãoQualquer(var(10))
 
Postado : 18/07/2018 5:16 am