Notifications
Clear all

Código VBA - Pesquisa e seleção - Ajuda entender

2 Posts
2 Usuários
0 Reactions
926 Visualizações
 ti02
(@ti02)
Posts: 0
New Member
Topic starter
 
ThisWorkbook.Worksheets("Planilha1").Activate  'Ativando a planilha
Range("A2").Select  'selecionando A2

Do While Not IsEmpty(ActiveCell)   'Laço enquanto não encontrar celula vazia na coluna A
  With ThisWorkbook.Worksheets("BASE").Range("A:A")  'com a worksheet BASE fazer uma busca por um valor igual à activeCell.offset(0, 3) quarta casa à direita na worksheet planilha1
    Set c = .Find(ActiveCell.Offset(0, 3), LookIn:=xlValues)
    If Not c Is Nothing Then    'se encontrado, então ele preenche os campos.
    ActiveCell.Offset(0, 6).Value = c.Offset(0, 2).Value 
    ActiveCell.Offset(0, 7).Value = c.Offset(0, 3).Value
    End If ' dim da condição
    End With  'fim da instrução com
    ActiveCell.Offset(1, 0).Select  'pula pra celula abaixo, no caso A3, depois A4 e assim sucessivamente.
    Loop  ' faz o loop

No caso a minha duvida é de onde saiu essa variável c. ela é uma propriedade do objeto worksheet?

 
Postado : 06/03/2017 2:04 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

esse variavel c, na verdade não é uma variável.
Nunca foi declarada, o que o VB/VBA permite, mas caracteriza péssima prática de programação.

Esta linha...

ThisWorkbook.Worksheets("BASE").Range("A:A").Find(ActiveCell.Offset(0, 3), LookIn:=xlValues)

...retorna um objeto do tipo range ou um erro.

O c como não foi declarado, assume a "tipagem" da primeira vez que ´´e utilizado com sucesso... Neste caso ele inicia como variant, e depois assume object/range, na tipagem!

 
Postado : 06/03/2017 2:36 pm