2016-10-22 2 views
0

Ich bin immer noch ein Noob in VBA, also tut es mir leid, wenn ich es ein bisschen seltsam sage. Zum Beispiel habe ich eine Tabelle, die eine Bibliothek von Musiktiteln mit 3 Spalten hat: Track #, Titel des Songs, Singer. Ich habe eine "Datenbank" Sub, die, wenn ich es ausführe, fragt nach einer Benutzereingabe, wenn sie nach Titel #, Titel oder Sänger suchen möchten. Ich habe eine Case-Auswahl, die das separate Sub ruft, um das passende Lied zu finden, wie es vom Benutzer eingegeben wurde. Wenn der Benutzer die Titelnummer eingibt, wird der Sub aufgerufen, um den passenden Titel und Sänger zu finden.Wie erstellt man eine Sub, die aufgerufen werden kann, um übereinstimmende Werte in Spalten zu finden?

Ich weiß jedoch nicht, wie Sie das separate Sub erstellen, das dies tut und von der Datenbank aufgerufen werden kann. Kann mir jemand helfen? Diese ist, was ich versuchte, mit zu kommen, aber ich weiß, es ist völlig falsch und ich habe keine Ahnung über die Syntax und logischen Aufbau:

sub TrackList (TrackNum as string) 
    With TrackNum = Range ("A1:A11").Find("UserInput") 
    Dim Title as String 
    Title = Range (B2:B11").Find("TrackNum") 
    Dim singer as string 
    singer = Range(C2:C11").Find("Title") 
    End With 

    If userInput = TrackNum And userInput = Title and Title = Singer Then 
    MsgBox "The following track(s) matches your search:" & title & singer 

Antwort

0

Ich nehme an, Sie im Ergebnis interessiert sind und nicht in einem bestimmten Teil , daher der folgende Code ... Ihre imaginäre Datenbank befindet sich in den Spalten A, B und C. E7, F7 und G7 empfangen Eingang, und N7, O7 und P7 zeigen Suchergebnisse an. Platzieren Sie eine Befehlsschaltfläche auf Sheet1, und geben Sie den folgenden Code in seinem Sub ein.

Private Sub CommandButton1_Click() 
    Range("N7:P20").ClearContents 
    x = 7 
    lastrow = Range("a10000").End(xlUp).Row 

    If Not Range("E7") Then 
     For i = 2 To lastrow 
      If Cells(i, 1) = Range("E7") Then 
       Range("N7") = Cells(i, 1) 
       Range("O7") = Cells(i, 2) 
       Range("P7") = Cells(i, 3) 
      End If 
     Next 
    End If 

    If Range("F7") <> "" Then 
     For i = 2 To lastrow 
      If Cells(i, 2) = Range("F7") Then 
       Range("N7") = Cells(i, 1) 
       Range("O7") = Cells(i, 2) 
       Range("P7") = Cells(i, 3) 
      End If 
     Next 
    End If 

    If Range("G7") <> "" Then 
     For i = 2 To lastrow 
      If Cells(i, 3) = Range("G7") Then 
       Cells(x, 14) = Cells(i, 1) 
       Cells(x, 15) = Cells(i, 2) 
       Cells(x, 16) = Cells(i, 3) 
       x = x + 1 
      End If  
     Next 
    End If 
    End Sub 
Verwandte Themen