用集合对象填充Excel表

时间:2019-09-16 11:55:56

标签: excel vba

我正在尝试创建一个宏,让用户在20个不同的单元格中输入值,然后将这些信息(单击按钮时)添加到另一张工作表的数据库中,以备后用。

我已经成功编写了将这20个不同值存储在集合对象中的代码,现在我试图编写代码的后半部分,我希望在其中填充该集合对象,比方说表中的第8行。

轮廓如下:

  1. 向集合对象添加20个不同的值
  2. 转到其他工作表(数据表)
  3. 查看表的最后一行是否为空,如果不是,则添加一行,否则转到步骤4
  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

1 个答案:

答案 0 :(得分:0)

我认为计数器和循环是Collection对象的最佳选择。如果要设置对Microsoft脚本运行时的引用,则可以使用Dictionary对象而不是Collection对象。有了Dictionary,您可以使用Items或Keys方法一次拍摄一个范围,而不是循环播放。

Excel.Range selectRange = excelWorkSheet.Range[excelWorkSheet.Cells[A4157], excelWorkSheet.Cells[A4178].select;
Excel.Range copyRange = excelWorkSheet.Range[excelWorkSheet.Cells[A4157], excelWorkSheet.Cells[A4178]].select;

listobject row added

我以前不喜欢使用Dictionary,因为我不希望使用该外部参考。但是一旦我克服了这个问题(并且没有任何问题),几乎在所有情况下我都喜欢使用字典。

相关问题