我有一个同事在useform中创建的多列列表视图。一旦useform打开,它就会被填充。我想在填充的列表视图的最后一行中找到项目。例如:
header1 header2 header3
11 12 13
21 22 23
31 32 33
我想要一行(或几行)将31
,32
和33
存储在不同的变量中。
我的ListView名为lsvLots
。我能够将31
存储在字符串strProduct
中,其中包含以下内容:
strProduct = lsvLots.ListItems.Item(lsvLots.ListItems.Count)
但是我只能返回第一列的最后一项。如何访问其他列?
答案 0 :(得分:2)
列表中的最后一行由ListCount
确定,可以按如下方式引用:
UserForm1.lsvLots.List(UserForm1.lsvLots.ListCount - 1, 0)
注意,如果ListBox中有一行,ListCount
将为1。然而,引用它(第一行和最后一行)的索引从0开始而不是从1开始。因此,您必须从ListCount
中减去1以将其转换为索引(从0开始)。
结尾处的0表示您希望从该行获取第一列。同样,第一列的列为0,第二列为1,第三列为2,等等。
简而言之,要获取最后一行中的所有项目,您应该使用:
strProduct1 = UserForm1.lsvLots.List(UserForm1.lsvLots.ListCount - 1, 0)
strProduct2 = UserForm1.lsvLots.List(UserForm1.lsvLots.ListCount - 1, 1)
strProduct3 = UserForm1.lsvLots.List(UserForm1.lsvLots.ListCount - 1, 2)
或(更整洁):
With UserForm1.lsvLots
strProduct1 = .List(.ListCount - 1, 0)
strProduct2 = .List(.ListCount - 1, 1)
strProduct3 = .List(.ListCount - 1, 2)
End With
答案 1 :(得分:0)
试试这个
strProduct = lsvLots.ListItems(lsvLots.ListItems.Count).SubItems(1)