【发布时间】:2019-09-16 22:06:41
【问题描述】:
我正在尝试创建一个宏,让用户输入,比如说,20 个不同单元格中的值,然后(在单击按钮时)将此信息添加到另一个工作表上的数据库以供以后使用。
我已成功编写代码以将这 20 个不同的值存储在一个集合对象中,现在我正在尝试编写代码的后半部分,我希望该集合对象填充到表中的第 8 行。
大纲如下:
- 向集合对象添加 20 个不同的值
- 转到其他工作表(数据表)
- 查看表的最后一行是否为空,如果不是,则添加一行,否则转到步骤4
- 用集合对象中的值填充表中的相应行。
我可以创建一个带有计数器等的循环,但也许存在更复杂的解决方案?
Sub AddDataRow(myCol As Collection)
Dim sheet As Worksheet
Dim table As ListObject
Dim rng2 As Range
Set sheet = Worksheets("Databas")
Set table = sheet.ListObjects("Table1")
If table.ListColumns("Projektnamn").Range.End(xlDown) <> "" Then
table.ListRows.Add
Else
End If
【问题讨论】:
-
假设存在
DataBodyRange,使用table.ListColumns("Projektnamn").DataBodyRange(table.ListColumns("Projektnamn").DataBodyRange.Rows.Count)而不是Range.End(xlDown)可能更可靠。我不确定我是否完全理解你的问题,但我认为没有任何本机/方便的方法可以将集合的内容传输到 Excel 表/ListObject——我认为这就是你所问的。