【发布时间】:2016-01-15 03:13:34
【问题描述】:
我有一列,我想根据另一列中的值从(带有空单元格)中提取信息。
这个question 帮了我很多,但我现在有一列有多个空单元格,公式不起作用......
代码:
Private Sub techCombo_Change()
Dim ws As Worksheet
Dim rFound As Range
Dim cCmbBox As MSForms.ComboBox
Set cCmbBox = ActiveWorkbook.Sheets(1).custCombo
cCmbBox.Clear
With Me.cmbSheet
If .ListIndex = -1 Then Exit Sub
Set ws = ActiveWorkbook.Sheets(.Text)
End With
With Me.techCombo
If .ListIndex = -1 Then Exit Sub
Set rFound = ws.Columns("A").Find(.Text, ws.Cells(ws.Rows.Count, "A"), xlValues, xlWhole)
End With
If Not rFound Is Nothing Then
If Trim(Len(rFound.Offset(2, 1).Text)) = 0 Then
cCmbBox.AddItem rFound.Offset(1, 1).Value
Else
cCmbBox.List = ws.Range(rFound.Offset(1, 1), rFound.Offset(1, 1).End(xlDown)).Value
End If
End If
End Sub
【问题讨论】:
-
根据您发布的数据,预期的结果是什么?
-
组合框未填充,因为 Set rFound 为空,或者在调试时 rFound 为“Nothing”。预期的结果应该是一个填充了 Kund1-4 的 ComboBox
-
值所在的行重要吗?例如,是否需要知道 Kund1 位于第 8 行?如果没有,您可以添加一段代码来选择整个列并删除所有重复项,这将删除列中包含有效条目的部分中的大量空单元格。
-
如果 rFound 什么都不是,那么它没有在工作表的 A 列中找到值。您能否确认 Me.techCombo.Text 是您期望的值并且它存在于您的工作表中(没有前导或尾随空格、隐藏的不可打印字符等)?
-
@Brad 您必须查看他的链接问题以了解数据的布局方式。它比这稍微复杂一些。