首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当我单击每个查找值的选项按钮时,来自不同工作表的具有vlookup函数的用户表单

当我单击每个查找值的选项按钮时,来自不同工作表的具有vlookup函数的用户表单
EN

Stack Overflow用户
提问于 2018-01-26 16:30:02
回答 1查看 668关注 0票数 0

我必须知道,有没有可能通过使用选项按钮从两个不同的工作表中列出单个组合框。这样做效果很好。但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函数的另一个来源得到的代码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

这是我用于选项按钮的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
EN

回答 1

Stack Overflow用户

发布于 2018-01-26 17:05:56

我相信像下面这样的东西就可以做到:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48465525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文