【问题标题】:VBA Userform Populate textbox with cell value based on 2 combobox selectionsVBA Userform根据2个组合框选择使用单元格值填充文本框
【发布时间】:2018-07-11 10:03:33
【问题描述】:

我正在尝试根据 2 个组合框选择填充用户窗体上的文本框?我找不到任何代码来接近这个我可以填充 1 个组合框但不是 2 任何人都可以帮忙吗?

例如,combobox1 = 单元格 E3(第 1 期)和组合框2 = 单元格 E4(周)在 Textbox1 中显示单元格值 E6

如果有人可以帮助我将非常感激

【问题讨论】:

  • ComboBoxes 的值是什么?
  • Combobox 1 = 第 1 期、第 2 期.... 第 13 期、Combobox2 = 第 1 周、第 2 周、第 3 周和第 4 周
  • 您可以使用FoundRange = Range().Find() 在工作表中搜索 ComboBox1 值。 FoundRange.Offset(3, 0) 代表第 1 周,FoundRange.Offset(3, 1) 代表第 2 周等。试一试,然后返回您的代码和特定问题(或您遇到的错误)。
  • 听起来像这样,您必须列出所有可能性,即 Period1/Week1、Week2 等……然后是 Period2/Week1、Week2 等……如果这是你想要的,那么您可以使用标签而不是文本框,例如将其命名为 DisplayLabel1,然后声明: if combobox1 = Cell E3 (Period 1) & combobox2 = Cell E4 (week) then DisplayLabel1.Caption = "whatever cell address content is should display".value... 然后另一个 if 和另一个 ...
  • 在选择周/周期后是否有任何选择单元格的模式?例如,如果选择了第 1 周,无论选择哪个时期,它是否总是第 6 行中的单元格?如果是,那么您可以在组合框中使用隐藏列并将行/列号放在那里。例如,周期 1 是第 5 列,第 1 周是第 6 行和偏移量 0。所以要选择的单元格是 .cells(6,5).offset(0,0)

标签: excel vba combobox userform


【解决方案1】:

将 2 个文本框集中到 1 个值并搜索解决了这个问题

Private Sub CommandButton1_Click()

 Dim Inp, Outp
    Dim Rng As Range
    Inp = TextBox1.Value
    With Sheets("2018 - 2019").Range("E2:H2")
        Set Rng = .Find(what:=Inp, after:=.Cells(.Rows.Count, 1), LookIn:=xlValues, _
                            LookAt:=xlPart, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlNext, _
                            MatchCase:=False)
        If Not Rng Is Nothing Then
            Outp = Rng.Offset(5, 0).Value
            TextBox2.Value = Outp
        End If
    End With

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 2018-04-12
    • 2017-09-07
    相关资源
    最近更新 更多