2017-01-30 3 views
0

ich eine einfache Demo begannfinden Funktion in VBA

durch Schreiben
Sub search() 
Range("B1:B7").Find("abc").Activate 
End Sub 

Ich hatte gehofft, dass Excel wird automatisch eine Zelle auswählen enthält Wert „abc“ in es jedoch bekam ich eine Fehlermeldung „Objektvariable oder mit Blockvariable nicht gesetzt ". Habe ich überhaupt etwas vermisst?

Schätzen Sie es.

+0

Blick auf den folgenden Link. Es zeigt den richtigen Weg, um das Objekt und die Suche zu identifizieren. Dann fügen Sie einfach ein Activate für die gefundene Zelle hinzu. https://msdn.microsoft.com/en-us/library/office/ff839746.aspx –

Antwort

2

"https://msdn.microsoft.com/en-us/library/office/ff839746.aspx"

Sub tester() 
    With Worksheets(6).Range("B1:B500") 
     Set c = .Find("Smith Jon Junior", LookIn:=xlValues) 
     If Not c Is Nothing Then 
      firstAddress = c.Address ' not required 
      c.Activate 
     else 
      msgbox ("Not Found") 
     End If 
    End With 
End Sub 
+0

Vielen Dank für die Notizen, es ist wirklich hilfreich –

+0

immer explizit anzugeben 'LookAt' und' LookIn' Parameter Werte sonst wird Excel verwenden ihre Einstellung bei "last" 'Find()' mit, auch wenn sie von der Excel-UI stammt – user3598756