Vlookup in Excel Macro



我在excel中创建了一个表单,该表单从用户那里获取输入并将其保存在Sheet2中。 我有一个名为"帐户"的组合框,用户将从中选择帐户名称。 但是,每个帐户都有一个与之关联的唯一 ID。 我不想向最终用户公开此 ID,但同时我希望与 sheet2 中填充的帐户对应的 Id。

我正在尝试进行Vlookup以搜索所选帐户的ID。

我已经在 Sheet3 中设置了帐户值。

例:列 A 列 B 列账号1 编号12345账号2 ID23456账户3 ID34567

我在 excel 宏中的代码如下所示。

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)

我不确定为什么它不起作用。 任何建议将不胜感激。

谢谢

试试这个:

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

尽可能限定所有内容,并使用简洁但有意义的代码。如果您想要里面的东西,请不要使用Range("A2")。使用.Value因为这是最佳做法。据我所知,没有任何问题。我还为没有匹配项添加了Error 1004处理。最后,请注意,我myValue更改为Variant,只是为了覆盖基础。

让我们知道这是否有效。

试试这个吗? : 抱歉太长,无法发表评论:

With Worksheets("Sheet2")
    .Range("A1").Offset(RowCount, 0).Value = Me.Account.Value
    myValue = WorksheetFunction.VLookup(.Range("A2"), Sheeet3.Range("G1:H14"), 2, False)" 
End With

也许吧,所以试试吧。

Sub Lookup()
Dim Emp As String
Dim Lookup_Range As Range
Dim Age As Single
Emp = "Jitu"
Set Lookup_Range = Range("A1:B8")
Age = Application.WorksheetFunction.VLookup(Emp, Lookup_Range, 2, False)
MsgBox "Age is : $ " & Age
End Sub

桌子:电磁炉年龄比巴什 22拉胡尔 22阿比塞克 23吉图21苏吉特 24叮叮 25鲁德拉 26

最新更新