【发布时间】:2019-11-06 15:28:36
【问题描述】:
我能够使用工作表中的一系列值来填充我的列表框。现在我想填充从列表框中选择的值旁边的单元格,但它似乎找不到从列表框中选择的原始值。
Private Sub cmdAdd_Click()
LastRow = Cells(Rows.Count, 2).End(xlUp).Row
For j = 2 To LastRow
If Cells(j, 2).Value = cmbStage.Value Then
For k = 2 To LastRow
If Cells(k, 3).Value = lstJobCard.Value Then
Cells(k, 4).Value = lstJobCard.Value & ": " & txtNote.Value
End If
Next k
End If
Next j
Unload Me
End Sub
我做错了什么?
【问题讨论】:
-
我不明白为什么你有一个双 for 循环?内部循环将忽略外部循环的结果,并将值放在第 3 列中每个找到的
lstJobCard实例旁边。 -
@tigetavatar 我正在遍历两个不同的列。第一个 for 循环将遍历 B 列并从组合框中查找值。第二个 for 循环将查找单元格与列表框匹配的位置,前提是已经找到组合框。如果两者都匹配,我希望它输出注释文本框。这是我最初的想法。它目前没有找到两者相等的单元格(即使它在那里)。
-
那么没有第二个循环,只需在 if 语句中添加
And条件:If Cells(j, 2).Value = cmbStage.Value And Cells(j, 3).Value = lstJobCard.Value Then -
@tigeravatar 我试过了,但还是不行。 Excel 说没有一个单元格与我的 lstJobCard.Value 匹配,即使该列表框是从范围填充的
标签: excel vba listbox userform populate