Verwendung von Variable in Function in VBA

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm TextBox
Bild

Betrifft: Verwendung von Variable in Function in VBA
von: Frank
Geschrieben am: 06.11.2015 13:50:01

Hallo,
ich möchte gerne Variablen in einer Funktion n VBA verwenden.
Bisher habe ich folgenden Code aber mein Problem ist, dass ich nicht weiss, wie ich in VBA eine Variable in eine Funktion integriere.
Kann mir jemand damit weiterhelfen ?
Mein Code:

Dim varID As Integer
Dim varText As String
    
varID = Selection.Offset(0, 1).Value
varText = Application.WorksheetFunction.Index(Worksheets(9).Range("B:B"), Application.WorksheetFunction.Match(varID, Worksheets(9).Range("A:A"), 0))
Momentan funktioniert dieser Code für mich nur manchmal, d.h. nicht bei allen betroffenen Zellen / Werten.
Vielen Dank im Voraus,
Frank

Bild

Betrifft: AW: Verwendung von Variable in Function in VBA
von: hary
Geschrieben am: 06.11.2015 14:08:58
Moin
Die Variable ist richtig eingefuegt.
Kommt eine Fehleermeldung?
gruss hary

Bild

Betrifft: AW: Verwendung von Variable in Function in VBA
von: Frank
Geschrieben am: 06.11.2015 14:11:18
Hallo Hary,
danke für Deine Antwort.
In meinem Beispiel ist die ID = 2.
Wenn ich statt der Variable "2" manuell und mit den Anführungszeichen eingebe, funktioniert der Rest des Codes korrekt, verwende ich es aber so wie oben, dann springt der Debugger an und markiert die Zeile mit der Formel.
Gruß,
Frank

Bild

Betrifft: AW: Verwendung von Variable in Function in VBA
von: hary
Geschrieben am: 06.11.2015 14:24:25
Moin
Dann gemischte Zellformate(Zahl und Text) in SpalteA, bzw. du vergleichst Zahl und Text.
gruss hary

Bild

Betrifft: AW: Verwendung von Variable in Function in VBA
von: Frank
Geschrieben am: 06.11.2015 14:18:28
...noch eine Ergänzung zu meiner vorherigen Email:
Wenn ich statt der Variable Selection.Offset(0, 1).Value direkt in der Formel verwende, dann funktioniert es auch, es scheint also irgendwie mit der Formatierung / Definition der Variablen zu tun zu haben ?
Gruß,
Mike

Bild

Betrifft: AW: Verwendung von Variable in Function in VBA
von: ChrisL
Geschrieben am: 06.11.2015 14:19:05
Hi Frank
Ein paar Hinweise.
1. Grundsätzlich baust du hier einen SVERWEIS resp. VLOOKUP.
2. Wenn du die Funktion in einer Tabelle verwendest, ist es gefährlich, mit Selection zu arbeiten. Wird der Cursor verschoben und eine Neuberechnung ausgelöst, hast du plötzlich ein falsches Ergebnis.
Mein Vorschlag darum:

Function DeineFunktion() As String
With Worksheets(9)
DeineFunktion = WorksheetFunction.VLookup(.Range(Application.Caller.Offset(0, 1).Address), _
.Range("A:B"), 2)
End With
End Function

cu
Chris

Bild

Betrifft: AW: Verwendung von Variable in Function in VBA
von: Frank
Geschrieben am: 06.11.2015 14:39:35
Hallo Chris,
vielen Dank - das macht Sinn so.
Wie verwende ich dann diesen Ansatz, wenn ich das Ergebnis (varText) in einer Textbox in einer Userform anzeigen möchte ?

                    With FrmHelp
                        .TxtHelp.Text = varText
                        .Show
                    End With
Gruß,
Frank

Bild

Betrifft: AW: Verwendung von Variable in Function in VBA
von: ChrisL
Geschrieben am: 06.11.2015 14:55:54
Hi Frank
Verstehe ich nicht. Variable, Funktion, jetzt Userform...
Zum Code Schnipsel kann ich nur sagen, dass du den Inhalt einer Textbox auf Userform erst füllen kannst, wenn das Userform geladen ist.
cu
Chris

Bild

Betrifft: UF : Füllen vor Laden
von: EtoPHG
Geschrieben am: 06.11.2015 15:05:16
@Chris:
Zitat: Textbox auf Userform erst füllen kannst, wenn das Userform geladen.
Das ist falsch. Sobald ein Objekt der Userform von einer ausstehenden Klasse angesprochen wird, wird ein Load des UF-Klassenmoduls vorgenommen! D.h. das Codeschnipsel funktioniert syntaktisch.
@Frank
Liefere nicht nur Schnipsel und Twitterähnliche Sätze. Lieber eine Beispielmappe mit ausführlicher Problembeschreibung und erwarteten Werten/Vorgängen!
Gruess Hansueli

Bild

Betrifft: ups, danke für die Richtigstellung o.T.
von: ChrisL
Geschrieben am: 06.11.2015 15:49:17
.

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Verwendung von Variable in Function in VBA"