Frage

Ich habe in Excel ein Formular erstellt, das Eingaben von Benutzern entgegennimmt und diese in Sheet2 speichert.Ich habe ein Kombinationsfeld mit dem Namen „Konto“, aus dem Benutzer den Namen des Kontos auswählen können.Allerdings ist jedem Konto eine eindeutige ID zugeordnet.Ich möchte diese ID nicht den Endbenutzern zugänglich machen, aber gleichzeitig möchte ich, dass die ID, die dem ausgewählten Konto entspricht, in Tabelle 2 eingetragen wird.

Ich versuche, einen Vlookup durchzuführen, um nach der ID des ausgewählten Kontos zu suchen.

Ich habe die Kontowerte in Sheet3 eingerichtet.

Example: 
Column A  ColumnB
Account1  Id12345
Account2  Id23456
Account3  Id34567

Mein Code im Excel-Makro sieht in etwa wie folgt aus.

Private Sub Save_Click()

Dim RowCount As Long
Dim myValue as String

RowCount = Worksheets("Sheet2").Range("A1").CurrentRegion.Rows.Count
With Worksheets("Sheet2").Range("A1")
 .Offset(RowCount, 0).Value = Me.Account.Value
myValue = WorksheetFunction.VLookup(Range("A2"), Range("Sheet3!G1:G14"), 2, False)

Ich bin mir nicht sicher, warum es nicht funktioniert.Jeder Vorschlag wird sehr geschätzt.

Danke,

War es hilfreich?

Lösung

Versuche dies:

Private Sub Save_Click()

    Dim RowCount As Long
    Dim myValue As Variant
    Dim Sh2 As Worksheet, Sh2 As Worksheet
    Dim RefRange As Range

    With ThisWorkbook
        Set Sh2 = .Sheets("Sheet2")
        Set Sh3 = .Sheets("Sheet3")
    End With

    RowCount = Sh2.Range("A1").CurrentRegion.Rows.Count
    Set RefRange = Sh3.Range("G1:H14") '--Change as necessary.

    Sh2.Range("A1").Offset(RowCount, 0).Value = Me.Account.Value
    On Error GoTo myValueErrHandle
    myValue = WorksheetFunction.VLookup(Sh2.Range("A2").Value, RefRange, 2, False)
    '--More code, etc etc.

myValueErrHandle:
    If Err.Number = 1004 Then
        MsgBox "No match using VLOOKUP."
    End If
    Exit Sub

End Sub

Qualifizieren Sie so weit wie möglich alles, was Sie können, und verwenden Sie prägnanten, aber aussagekräftigen Code.Nicht verwenden Range("A2") wenn du willst, was drin ist.Verwenden .Value da dies die beste Vorgehensweise ist.Soweit ich sehen kann, ist nichts falsch.Ich habe auch eine hinzugefügt Error 1004 Handhabung für keine Übereinstimmungen.Beachten Sie abschließend, dass ich mich geändert habe myValue zu einem Variant, nur um Basen abzudecken.

Lassen Sie uns wissen, ob das funktioniert.

Andere Tipps

Versuchen Sie das?: Entschuldigung, zu lange, um einen Kommentar zu geben:

generasacodicetagpre.

nur vielleicht, also probieren Sie es aus.

generasacodicetagpre.

table: EMP-Alter Bibhash 22. Rahul 22. Abhisek 23. Jitu 21. Sujit 24. Tinku 25. Rudra 26

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top