【问题标题】:VBA Sub to add row from one table to check multiple tables of line items for qty > 0 and then dynamically add to new tableVBA Sub从一个表中添加行以检查行项目的多个表的数量> 0,然后动态添加到新表
【发布时间】:2021-04-30 03:07:38
【问题描述】:

我将各种桌子堆叠在一起,形成各种要销售的产品。在每个表中都有与该组相关的产品(想想杂货和农产品可能是表的标题,然后在生菜、西红柿、卷心菜等下面作为标题,其中一个标题是 qty - 第一列)。我想遍历每个表,并为每个具有 qty > 0 的表打印表的标题,并且只打印具有 qty>0 的行。

我下面的想法是遍历每个表(从 table1 开始),如果 qty>0,则将该行复制到动态创建的表中,添加行然后将全局标志标记为 true。如果为 true,则粘贴标题、标题,然后是创建的表。我不知道如何向表中添加行....

子 CopyRows()

Dim wb As Workbook: Set wb = ThisWorkbook
Dim ws, ws2 As Worksheet
Set ws = wb.Sheets("Summary")
Set ws2 = wb.Sheets("Sales Ops Ready - Rob")
Dim checkFlag As Boolean
Dim lo As ListObject
Dim globalRowCount As Long

Dim objTable As ListObject
Set objTable = ActiveSheet.ListObjects.Add(xlSrcRange, Selection, , xlYes)

Set lo = ws.ListObjects("Table1")

For rw = 1 To lo.Range.Rows.Count
    
    If lo.DataBodyRange(rw, 1) > 0 Then
        checkFlag = True
        ??
    End If
    

Next

结束子

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    在不了解您的确切要求的情况下,这是一个粗略的想法。

    Sub test()
        Dim rw As ListRow
        Dim newRow As ListRow
        Dim lo As ListObject
        Dim objTable As ListObject
        
        Set objTable = ActiveSheet.ListObjects.Add(xlSrcRange, Selection, , xlYes)
        
        For Each rw In lo.ListRows
            If rw.Range(1) > 0 Then 'set the column index here
                Set newRow = objTable.ListRows.Add
                With newRow
                    .Range(1) = rw.Range(1)
                    .Range(2) = rw.Range(2)
                    '... ... etc
                End With
            End If
        Next rw
    End Sub
    

    【讨论】:

    • 非常感谢。我想我快到了。我还有另一个问题。如何设置一个新的空表(ListObject),我可以在上面 objTable 的位置填充它?我想为此定价指南中的每个表运行 For Each 迭代(定价指南有多个表,其中每个表指定特定于该类别的产品。所以我需要动态创建表,然后将其输出到新选项卡(其中我只需要在运行例程之前创建一个全新的状态。谢谢!
    • 从技术上讲,这应该是一个新问题,但不要将 objTable 设置为现有表,只需使用 .ListRows.Add 构建一个新表,并在完成后将 objTable 设置为空。
    猜你喜欢
    • 2020-06-03
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    相关资源
    最近更新 更多