2017-11-18 3 views
-4

Ich möchte den Code hinzufügen "Wenn nicht FindRng ist nichts dann", Wie kann ich es tun? Hier unten ist der Code, der nur funktioniert, wenn etwas gefunden wird!VBA Find - Ich möchte ein Makro erstellen, um einen Wert aus einem anderen Blatt zu finden

Sub ORDER() 

    Dim wordToSearch As String 
    Dim rowToDelete As Integer 

Sheets("Dashboard").Select 
RowCount = Cells(Cells.Rows.Count, "W").End(xlUp).Row 
For i = 1 To RowCount 

Range("W" & i).Select 
check_value = ActiveCell 
If check_value = "Y" Or check_value = "y" Then 



    Sheets("Dashboard").Select 
    wordToSearch = Sheets("Dashboard").Range("L" & i).Value 

    Sheets("Order").Select 
    Cells.Find(What:=wordToSearch, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _ 
     xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ 
     , SearchFormat:=False).Activate 
    rowToDelete = ActiveCell.Row 
    Rows(rowToDelete & ":" & rowToDelete).Select 
    Application.CutCopyMode = False 
    Selection.Delete Shift:=xlUp 

    Sheets("Dashboard").Select 
    End If 
    Next 

End Sub 
+0

Willkommen bei Stapelwechsel! Ich sehe, du beginnst mit VBA. Es ist eine tolle Anfängersprache zu lernen, vor allem wegen der unzähligen Tutorials und anderer Ressourcen, nur eine Google-Suche entfernt. Stack Overflow ist ein großartiger Ort, um Fragen zu stellen und zu beantworten, die sonst nirgendwo zu finden sind. Es ist nicht wirklich ein guter Ort, um einen Crashkurs zu finden. Ich sehe, Sie haben ein paar verschiedene Befehle gemischt (plus Ihre Frage ist nicht formatiert, so dass es schwierig ist, zu beheben), Überprüfen Sie die Tour [hier] (https://stackoverflow.com/tour), und dann gibt es einige tolle Tipps hier: [fragen] – ashleedawg

+1

Was ist Ihre spezielle Frage? –

Antwort

0

Je besser (und sicherer) Art und Weise Find zu verwenden ist, um Set a Range zu dem Ergebnis der Find, und im Fall Find fehlgeschlagen „finden“ ein Spiel, dann wird das Ergebnis Range = Nothing sein, und Sie können versuchen, diese Art von Fehler abzufangen, indem Sie If Not FindRng Is Nothing Then verwenden.

-Code

Sub Macro() 

Dim FindRng As Range 

With Sheets("order") 
    Set FindRng = .Cells.Find(What:=Sheets("Dashboard").Cells(2, 4), After:=ActiveCell, LookIn:=xlFormulas, _ 
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext) 

    If Not FindRng Is Nothing Then ' find was successful 
     FindRng.EntireRow.Delete 
    Else ' Find failed to find a match 
     MsgBox "Unable to find " & Sheets("Dashboard").Cells(2, 4), vbCritical 
    End If 
End With 

End Sub 
+0

Ich habe Probleme mit FindRng ist nichts dann ... –

+0

@AntoninoConforto was meinst du Probleme? erhalten Sie einen Laufzeitfehler in dieser Zeile? kannst du eine kleine angeben? –

+0

Kannst du nochmal meinen Code anschauen? Ich habe meinen Beitrag bearbeitet und möchte nun wissen, wo ich die Zeile "FindRng is Nothing then ..." einfügen soll. –

Verwandte Themen