我在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