2017-02-17 5 views
0

Ich habe ein Benutzerformular hat 2 Textfelder namens "date" und "shift" und Taste, um einen Code auszulösen. Auch haben Sie eine Excel-Datei mit dem Namen data.xlsx hat "Blatt1" haben eine Spalte Datum hinzugefügt als 07/02/2017, B Spalte Verschiebung als A/B/C hinzugefügt.Suche nach mehreren Kriterien mit VBA

date.value = "07/02/2017" 
shift.value = "C" 

so, was ich tun möchte, ist die Zeilennummer einer Spalte finden enthält „2017.07.02“ und B-Säule enthält „C“ in data.xlsx.

+0

Welche Ansätze haben Sie versucht, so weit? Stellen Sie Ihre Arbeit bereit. – Zerk

+0

Was ist mit der Funktion 'MATCH()'? –

Antwort

0

Probieren Sie den folgenden Code aus, um die Zeile "Shift" in Spalte B zu finden (mithilfe der Funktion Match).

Sie sollten in der Lage sein, die Änderungen vorzunehmen, damit es auch für die Suche nach dem Datum von dateTextBox funktioniert.

-Code

Sub CommandButton1_Click() 

' this code goes inside the command button (inside the User_Form module) 
Dim ValToSearch 
Dim MatchRes As Variant 

ValToSearch = Me.shift.Value '<-- get the value to look for 

With Worksheets("Sheet1") 
    MatchRes = Application.Match(ValToSearch, .Range("B:B"), 0) 
    If IsError(MatchRes) Then '<-- match not found 
     MsgBox "Not found" 
    Else 
     MsgBox "Found at row " & MatchRes 
    End If 
End With 

End Sub 
+0

danke für die antwort. aber was ich sehe, dass Sie shift.value nur in B-Spalte gefunden haben. Was ist mit date.value in einer Spalte. Ich muss beide gleichzeitig finden. –

+0

@MahmutUzun Ich habe Sie das Konzept, in der Tat können Sie die minimale Anstrengung machen, um den anderen Fall anzupassen –

+0

Ich bin soweit gekommen, indem ich "wenn" und chechking andere Spalte. aber es bringt noch andere Probleme mit sich. danke für die Antwort. –

Verwandte Themen