Notifications
Clear all

ERRO: "Object variable or With Block variable not set" .Find

6 Posts
2 Usuários
0 Reactions
1,449 Visualizações
(@rafaelcampos)
Posts: 7
Active Member
Topic starter
 

Boa Noite amigos, como vão?

Estou com um problema bem estranho no meu código. Para conseguir um código de selecionar a coluna A inteira e pesquisar por uma data, eu utilizei o gravador de macro e obtive o seguinte código:

Columns("A:A").Select
    Selection.Find(What:="01/01/2013", After:=ActiveCell, LookIn:=xlFormulas _
        , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate

Mas, ao executá-lo em forma de código, ele retorna o erro "Object variable or With Block variable not set". Acredito que seja porque não localizou o valor "01/01/2013", mas este valor está no intervalo de células selecionado. Alguém sabe o que poderia ser?

Muito obrigado,
Rafael.

 
Postado : 30/03/2014 6:29 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Faça os testes

Sub AleVBA_11131()

    Dim r As Range
    Dim c As Range
    Dim s As String
    Dim ms As String
    Set r = Range("A1", Range("A65536").End(xlUp))
    ms = "O Valor foi encontrado em  "
    s = InputBox("Digite o valor à encontrar", "AleVBA", "Digite aqui")

    For Each c In r.Cells
        If c = s Then MsgBox ms & c.Address
    Next c

End Sub

Att

 
Postado : 30/03/2014 6:57 pm
(@rafaelcampos)
Posts: 7
Active Member
Topic starter
 

Funcionou sim! Muito obrigado! Só uma pergunta, existe um meio de procurar a informação Data numa coluna (A) e a informação Hora numa outra colua (B) e retornar a linha onde se encontra essa combinação específica? Por exemplo:
A B
01/01/2013 00:00
01/01/2013 01:00

Caso não dê, já ajudou muito! Valeu!

 
Postado : 30/03/2014 7:09 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Isso ajudaria?

Option Explicit

Sub Tante()

    Dim r As Range
    Dim c As Range
    Dim s As String
    Dim ms As String
    Set r = Range("A1", Range("A65536").End(xlUp))
    ms = "O valor não foi encontrado  "
    s = InputBox("Digite seu valor à pesquisar", "Procurar", "Digite aqui seu valor")

    For Each c In r.Cells
        If c.Text & " " & c.Offset(0, 1).Text = s Then MsgBox ms & c.Address
    Next c

End Sub

:?

Att

 
Postado : 01/04/2014 5:20 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Ou tente

Sub Tente_II()

    Dim r As Range
    Dim c As Range
    Dim s As String
    Dim ms As String
    Set r = Range("A1", Range("A65536").End(xlUp))
    ms = "The Value was found at  "
    s = InputBox("Enter Value to Find", "Hello", "Enter Number Here")

    For Each c In r.Cells
        If c.Text & " " & c.Offset(0, 1).Text = s Then MsgBox ms & c.Address & "&" & c.Offset(0, 1).Address
    Next c

End Sub

Att

 
Postado : 01/04/2014 7:14 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Caso a ultima resposta não te atenda veja mais em
Fonte: http://www.davesexcel.com/vbacodes.htm#363404515

Att

 
Postado : 01/04/2014 7:22 am