Notifications
Clear all

Como armazenar um range e usar em .range()????

7 Posts
3 Usuários
0 Reactions
1,543 Visualizações
 ti02
(@ti02)
Posts: 34
Eminent Member
Topic starter
 

gostaria de usar um range dessa forma:

Dim meuRange As string

meuRange = "A:A"

worksheets("BLABLA").range(meuRange)

mas isso sempre dá erro, tipos incompatíveis, estouro e etc.
já tentei assim:

Dim meuRange as range

meuRange = "A:A"

worksheets("BLABLA").range(meuRange)

mas também não funcionou.

alguém saberia me dizer?

 
Postado : 12/05/2017 10:15 am
Syrax
(@syrax)
Posts: 160
Estimable Member
 

Você pode setar o seu range, sem precisar usar range(range)

exemplo

sub rng_teste()
Dim rng As Range
Set rng = Range("B2")

Debug.Print rng.value
set rng = nothing
End Sub

esse exemplo acima, faz com que a variável rng, assuma range("B2"), ou seja, quando você digitar "rng." vai aparecer todas as propriedades que apareceriam se você digitasse "range("B2")."

Se essa resposta te ajudou e resolveu o seu problema, clique no "joinha" ao lado de citar, e não esqueça de colocar o tópico como resolvido, clicando no ✓

 
Postado : 12/05/2017 11:08 am
 ti02
(@ti02)
Posts: 34
Eminent Member
Topic starter
 

Syrax, porém preciso acessar outro worksheet, por isso tenho de usar worksheets("BLABLA").range("A:A"), porém esse range depende do resultado do if, por isso eu gostaria de poder colocar worksheets("BLABLA").range(meuRange), onde meu range assumiria o que eu determinasse no if.
entende?

 
Postado : 12/05/2017 11:19 am
Syrax
(@syrax)
Posts: 160
Estimable Member
 

Na verdade não entendi tudo não,

se você vai mudar apenas o valor do range, pode usar o valor como string, e não como range

SUB rng_teste()
Dim rng As String
rng = "A:A"
c = Worksheets("Plan1").Range(rng).Value

end sub

veja na janela, "Variáveis locais", que "c" assume todas as linhas da coluna A:A

Se essa resposta te ajudou e resolveu o seu problema, clique no "joinha" ao lado de citar, e não esqueça de colocar o tópico como resolvido, clicando no ✓

 
Postado : 12/05/2017 12:59 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Se vc precisa localizar a coluna por que não usa o número da coluna

Sheets ("bla").cells (linha,coluna).value, já que vc pretende acessar toda a coluna.

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 : 13/05/2017 9:33 am
Syrax
(@syrax)
Posts: 160
Estimable Member
 

ti02,

Informe qual método você utilizou para resolver o problema, pois assim como você teve essa dúvida, outras pessoas também podem ter
pedir ajuda, e as pessoas te ajudarem depois abandonar o tópico, não ajuda os demais usuários na pesquisa do mesmo problema

Se essa resposta te ajudou e resolveu o seu problema, clique no "joinha" ao lado de citar, e não esqueça de colocar o tópico como resolvido, clicando no ✓

 
Postado : 15/05/2017 5:33 am
 ti02
(@ti02)
Posts: 34
Eminent Member
Topic starter
 

Syrax,

descobri depois que o problema do código, a incompatibilidade ao depurar estava em outra parte da linha, não no rng

SUB rng_teste(ByVal planilhaBase as Worksheet)

Dim rng As String
rng = "A:A"
c = Worksheets(planilhaBase).Range(rng).Value

end sub

no caso eu estava acessando a sheet por parâmetro, e no caso o correto seria

SUB rng_teste(ByVal planilhaBase as Worksheet)
Dim rng As String
rng = "A:A"
c = Worksheets(planilhaBase.name).Range(rng).Value

end sub

ou seja, faltou o .name e por isso dava erro
Obrigado pelas colaborações!

 
Postado : 17/05/2017 4:52 pm