将数据从列表视图(用户表单)打印到工作表

时间:2018-03-09 07:22:13

标签: excel vba excel-vba

我正在创建一个用户表单,可以制作食谱并将其打印到我的工作簿中的工作表中。

我有一个列表视图,其中列出了所有成分和数量。

当我按下按钮时,我希望将listview中的信息复制到工作表中。

当Userform到达“子项目”(代码的第7行)时,它会进行调试,说它是“无效的限定符”

以下是代码:

LastRow2 = Worksheets("Opskrifter").Cells(Worksheets("Opskrifter").Rows.Count, 1).End(xlUp).Row + 1

lngIndex = 0

Worksheets("Opskrifter").Cells(LastRow2, 1).Value = TextBox2.Value

loop1:

LastRow2 = LastRow2 + 1

lngIndex = lngIndex + 1

Worksheets("Opskrifter").Cells(LastRow2, 1).Value = ListView1.ListItems(lngIndex1).SubItems(0).Text

Worksheets("Opskrifter").Cells(LastRow2, 2).Value = ListView1.ListItems(lngIndex1).SubItems(1).Text

If lngIndex1 < ListView1.ListItems.Count Then GoTo loop1

任何人都可以帮助我修改代码中需要更改的内容以使其按预期工作吗?

- 子问题:

subitem(0)是列表视图中第一列的正确用语吗?

.Text是选择listview中的数据的正确方法吗?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

出于某种原因,这个表达式:Worksheets("Opskrifter").Cells(LastRow2, 1).Value = ListView1.ListItems(lngIndex1).SubItems(0).Text对于VBA来说太长了。以这种方式拆分:

Dim li As ListItem
Set li = ListView1.ListItems(lngIndex1)
Worksheets("Opskrifter").Cells(LastRow2, 1).Value = li.SubItems(0).Text