Im Hauptunterprogramm muss ich zwei Benutzereingaben bekommen ((1) Bereichsadresse (zB A1: C50), (2) Name String (z. B. James)), und rufen Sie die Funktionsunterroutine auf (indem Sie die Eingaben als Argumente übergeben), und drucken Sie das Ergebnis über die Nachrichtenbox aus, ob der Name existiert oder nicht in dem Bereich existiert.VBA: Ich muss sowohl eine Funktion als auch eine aufrufende Unterstelle schreiben, um folgendes zu tun
Sowohl der Suchbereich als auch der Name sollten von den Benutzern eingegeben werden. Wie schreibe ich die Function Unterroutine und die aufrufende Sub? Das habe ich bisher.
Function NameExists(name As String, area As Range) As Boolean
If name = area.Value Then
NameExists = True
Else
NameExists = False
End If
End Function
Sub Main()
Dim NameExists As Boolean
Dim name As String
name = InputBox("Enter a Name")
area = InputBox("Enter a Range")
If NameExists = True Then
MsgBox name & " Has Been Found"
Else
MsgBox name & " Has Not Been Found"
End If
End Sub
Vielen Dank das funktioniert! Gibt es eine Möglichkeit, den Benutzer den Bereich auswählen zu lassen, anstatt ihn einzugeben? Ich weiß, dass dieser Code ähnlich aussieht: area = Application.InputBox (Prompt: = _ "Bitte wählen Sie einen Bereich", _ Titel: = "InputBox Method", Typ: = 8) Aber wie würde ich das implementieren die Funktion? – th65
Wenn Sie das tun möchten, dann werden Sie wahrscheinlich die gesamte Textbox ganz vergessen wollen. Erstellen Sie stattdessen ein Makro und weisen Sie der Symbolleiste eine Schaltfläche zu, die eine InputBox öffnet, um den Namen zu erhalten, nach dem gesucht werden soll. Anschließend wird der ausgewählte Bereich übernommen und an die Funktion in meinem Code übergeben. Auf diese Weise markiert der Benutzer einen Bereich und klickt dann auf eine Schaltfläche. Das wäre eine bessere Art, das zu tun, denke ich. –