Excel 仅当列表没有零值时,才创建列表的波动副本
我有一张excel表格,如下所示:Excel 仅当列表没有零值时,才创建列表的波动副本,excel,vba,formula,Excel,Vba,Formula,我有一张excel表格,如下所示: Ingredient Amount Bananas 2 Apples 0 Eggs 10 Jelly 0 Pancake 0 Bread 1 Ingredient Amount Bananas 2 Eggs 10 Bread 1 我想在excel的另一张表
Ingredient Amount
Bananas 2
Apples 0
Eggs 10
Jelly 0
Pancake 0
Bread 1
Ingredient Amount
Bananas 2
Eggs 10
Bread 1
我想在excel的另一张表中列出相同的列表,但忽略所有数量为零的成分。所以它应该是这样的:
Ingredient Amount
Bananas 2
Apples 0
Eggs 10
Jelly 0
Pancake 0
Bread 1
Ingredient Amount
Bananas 2
Eggs 10
Bread 1
我不知道如何编写一个公式,使列表能够转换,而不会在原始“零”项所在的位置留下巨大的空白。]
我不能只是复制和粘贴非零成分,因为我需要列表波动,因为成分及其数量将不断更新。有数百种成分
感谢您的帮助 现在,您必须弄清楚如何在工作表更改时触发代码
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
Private Sub grocerylist()
作为变体的Dim-arr
arr=此工作簿。工作表(“Sheet3”)。使用Drange
对于i=LBound(arr,1)到UBound(arr,1)
如果arr(i,2)0那么
调试、打印;arr(i,2)
ThisWorkbook.Sheets(“Sheet4”).单元格(Sheet4.Rows.Count,1).结束(xlUp).偏移量(1,0).值=arr(i,1)
ThisWorkbook.Sheets(“Sheet4”).单元格(Sheet4.Rows.Count,1).结束(xlUp).偏移量(0,1).值=arr(i,2)
如果结束
接下来我
端接头
您自己先尝试过什么吗?我有一个IF语句(IF cell=0,“,component),但这会在最后一页留下漏洞。也就是说,如果数量为0,则只有空单元格。我不知道如何更改该语句,以说明(单元格=0,搜索其他非零单元格,成分)是否按数量降序排列列表。然后隐藏所有零行