【发布时间】:2021-12-07 18:05:59
【问题描述】:
在通过活动按钮填充工作簿后,我正在尝试使用 P 列中的唯一值填充列表框。我编写了以下语法,但由于某种原因,它只是用第一个单元格数据填充 ListBox,但停在那里......有什么想法吗?我敢肯定,由于我是 VBA 新手,所以我缺少一些简单的东西。
Dim Cellrng As Range
Dim Unique As New Collection
Dim Item As Range
On Error Resume Next
For Each Cellrng In ThisWorkbook.Worksheets("START").Range("P8:P" & lRow)
Unique.Add Cellrng, CStr(Cell)
Next Cellrng
On Error GoTo 0
For Each Item In Unique
ListBox1.AddItem Item
Next Item
【问题讨论】:
-
首先,删除
On Error Resume Next- 现在它会给你任何错误吗?接下来,您需要给lRow一个值。这不能是0或空白,因为没有“第 0 行” - 接下来,你永远不会定义Cell或给它一个值,所以你有很多问题。 -
“此键已与此集合的元素相关联” - 突出显示“Unique.Add Cellrng, CStr (Cell)”行。我应该在前面提到,这个块在一个更大的 sub 中运行,它已经给了 lRow 正确的值。
-
知道了。只需将(Cell)更改为(Cellrng) - 在那里放了一个大脑屁。一天结束哈哈。 TY 的帮助!
-
省去一些麻烦,并确保您始终在所有代码窗口的顶部使用
Option Explicit。