我在excel中创建了一个表单,它从用户那里获取输入并在Sheet2中保存相同的表单。我有一个名为Account的组合框,用户将从中选择帐户名称。但是,每个帐户都有一个与之关联的唯一ID。我不希望将此ID公开给最终用户,但同时我希望对应于在sheet2中填充的帐户对应的Id。
我正在尝试使用Vlookup来搜索所选帐户的ID。
我在Sheet3中设置了帐户值。
Example: Column A ColumnB Account1 Id12345 Account2 Id23456 Account3 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)
我不确定为什么它不起作用。任何建议将不胜感激。
谢谢,
答案 0 :(得分:0)
试试这个:
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
,只是为了覆盖基础。
如果有效,请告诉我们。
答案 1 :(得分:0)
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
也许吧,试试吧。
答案 2 :(得分:0)
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
表: Emp Age bibhash 22 拉胡尔22 abhisek 23 吉图21 sujit 24 tinku 25 rudra 26