我必须知道,有没有可能通过使用选项按钮从两个不同的工作表中列出单个组合框。这样做效果很好。但vlookup函数仅适用于表1,而不适用于表2。解释:
在我的用户表单中,
1组合框= cmbbx1
2个选项按钮= 1.hq 2.whs
2文本框= 1.txtbx1 2.txtbx2
当我单击选项按钮hq
时,sheet1
列表显示在combobox中。然后是另外两个已经用Application.WorksheetFunction.Vlookup
编码的文本框,所以它们显示了给定的单元格的值。
但是当我点击选项按钮whs
时,我不能让它工作。此时,组合框显示了来自sheet2的列表,但vlookup在这里不起作用。
这是我从vlookup函数的另一个来源得到的代码。
Private Sub CmbBX1_AfterUpdate()
'Check to see if value exists
If WorksheetFunction.CountIf(Sheet2.Range("B:B"), Me.CmbBX1.Value) = 0 Then
MsgBox "Employee Not Registered"
Me.CmbBX1.Value = ""
Exit Sub
End If
'Lookup values based on control
With Me
.TxBx1 = Application.WorksheetFunction.VLookup(Me.CmbBX1, Sheet2.Range("Emp_ltl"), 2, 0)
.TxBx2 = Application.WorksheetFunction.VLookup(Me.CmbBX1, Sheet2.Range("Emp_ltl"), 3, 0)
End With
End Sub
这是我用于选项按钮的代码:
Option Explicit
Public myList As Variant
Private Sub hq_Click()
myList = ThisWorkbook.Worksheets("LTL").Range("Emp_ltl").Value
Me.CmbBX1.List = myList
End Sub
Private Sub whs_Click()
myList = ThisWorkbook.Worksheets("LTS").Range("Emp_ltS").Value
Me.CmbBX1.List = myList
End Sub
发布于 2018-01-26 17:05:56
我相信像下面这样的东西就可以做到:
Private Sub CmbBX1_AfterUpdate()
If hq.Value = True Then 'check if hq is selected
Dim ws As Worksheets: Set ws = Worksheets("LTL") 'declare your worksheet and your range
Dim rng As Range: Set rng = ws.Range("Emp_ltl")
myList = ThisWorkbook.Worksheets("LTL").Range("Emp_ltl").Value
Me.CmbBX1.List = myList
ElseIf whs.Value = True Then 'if whs is selected
Dim ws As Worksheets: Set ws = Worksheets("LTS") 'declare and set your worksheet and range
Dim rng As Range: Set rng = ws.Range("Emp_ltS")
myList = ThisWorkbook.Worksheets("LTS").Range("Emp_ltS").Value
Me.CmbBX1.List = myLis
Else
MsgBox "No Option has been selected"
Exit Sub
End If
'Check to see if value exists
If WorksheetFunction.CountIf(ws.Range("B:B"), Me.CmbBX1.Value) = 0 Then
MsgBox "Employee Not Registered"
Me.CmbBX1.Value = ""
Exit Sub
End If
'Lookup values based on control
With Me
.TxBx1 = Application.WorksheetFunction.VLookup(Me.CmbBX1, rng, 2, 0)
.TxBx2 = Application.WorksheetFunction.VLookup(Me.CmbBX1, rng, 3, 0)
End With
End Sub
https://stackoverflow.com/questions/48465525
复制相似问题