【问题标题】:Search row of cell by selecting a name in combobox通过在组合框中选择名称来搜索单元格行
【发布时间】:2023-01-23 20:42:22
【问题描述】:

我有一个从 excell 表中收集数据的用户表单。当用户窗体在其中初始化组合框时,从 Excel 工作表中导入“A”列中的名称。我想要的是从组合框中选择一个名称,并从该名称所在的行中选择一个信息(例如,所选名称在 B4 中),textBox1 在单元格 B5 中导入信息,textBox2 在单元格 B6 中导入信息,依此类推。

【问题讨论】:

  • 这与您之前的问题有何不同:stackoverflow.com/questions/75016494
  • 为此,我使用带有名称的组合框。不是导入所有信息的列表框。我尝试使用之前的代码,但它确实检索了信息。工作表中的 A 列包含所有名称,对于 ech 名称,有一行信息太多,无法使用列表框。所以我需要按名称搜索“A”列,并仅从“B”、“c”、“d”等列中检索该名称的所有信息。
  • 那么你的问题是什么?如何找出列表框的选定值?如何使用该值在工作表中进行搜索以获取行号?如何填写文本框?所有这些都是微不足道的,并且已被多次询问和解释。

标签: excel vba


【解决方案1】:

我很难理解你想要什么。

(例如,所选名称位于B4) textBox1中导入信息 细胞B5, textBox2 导入单元格中的信息B6等等

案例-A
看起来您想从名称为 ... 的单元格下的行中检索信息

但从下面引述:

我想要的是从组合框中选择一个名称,然后来自该名称所在行的信息

案例-B
看起来您想从列和行名称旁边的列中检索信息。如果名称在单元格 B4 中,那么您希望 textbox1 的值是单元格 C4 的值,textbox2 的值是单元格 D4,依此类推。

案例A的代码:

Private Sub ComboBox1_Click()
Dim c As Range: Dim i
With ComboBox1
Set c = Range(.List(.ListIndex, 0))
End With
For i = 1 To 3
Controls("TextBox" & i).Value = c.Offset(i, 0)
Next
End Sub

Private Sub UserForm_Initialize()
Dim rg As Range: Dim cell As Range

With Sheets("Sheet1")
Set rg = .Range("A1", .Range("A1").End(xlToRight))
End With

With ComboBox1
  .ColumnCount = 2
  .ColumnWidths = "0,25"
End With

For Each cell In rg
    With ComboBox1
        .AddItem Replace(cell.Address, "$", "")
        .List(.ListCount - 1, 1) = cell.Value
    End With
Next

End Sub

案例 B 的代码

Private Sub ComboBox1_Click()
Dim c As Range: Dim i
With ComboBox1
Set c = Range(.List(.ListIndex, 0))
End With
For i = 1 To 3
Controls("TextBox" & i).Value = c.Offset(0, i)
Next
End Sub

Private Sub UserForm_Initialize()
Dim rg As Range: Dim cell As Range

With Sheets("Sheet1")
Set rg = .Range("A2", .Range("A2").End(xlDown))
End With

With ComboBox1
  .ColumnCount = 2
  .ColumnWidths = "0,25"
End With

For Each cell In rg
    With ComboBox1
        .AddItem Replace(cell.Address, "$", "")
        .List(.ListCount - 1, 1) = cell.Value
    End With
Next

End Sub

像这样命名您的文本框:TextBox1、TextBox2、TextBox3 等等。 根据您拥有的文本框数量更改代码中的循环次数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多