仅当列表没有零时才创建列表的波动副本

时间:2017-07-23 20:21:05

标签: excel vba formula

我有一张excel表,看起来像这样:

 Ingredient      Amount
 Bananas         2
 Apples          0
 Eggs            10
 Jelly           0
 Pancake         0
 Bread           1

我想在excel中的另一张表中使用相同的列表,但忽略其数量为零的所有成分。所以看起来应该是这样的:

 Ingredient     Amount
 Bananas        2
 Eggs           10
 Bread          1

我不知道如何编写一个允许转换列表的公式,而不会留下原始"零"物品是。]

我不能只复制和粘贴非零成分,因为我需要列表波动,因为成分及其数量将不断更新。而且有数百种成分。

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

你好,你必须弄清楚当工作表改变时如何激活代码

Private Sub grocerylist()
    Dim arr As Variant
    arr = ThisWorkbook.Sheets("Sheet3").UsedRange
    For i = LBound(arr, 1) To UBound(arr, 1)
        If arr(i, 2) <> 0 Then
            Debug.Print ; arr(i, 2)
            ThisWorkbook.Sheets("Sheet4").Cells(Sheet4.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = arr(i, 1)
            ThisWorkbook.Sheets("Sheet4").Cells(Sheet4.Rows.Count, 1).End(xlUp).Offset(0, 1).Value = arr(i, 2)
        End If
    Next i
End Sub