Excel:当其他单元格等于定义的值时删除整行

我已经看到(search)类似的例子,但不是我所期待的。

我在Excel中有一个工作簿,它有几张工作表A和B.这些工作表有大量的数据,所以为了从工作表A中显示工作表B上最重要的数据,我只想镜像我想要的行根据SheetA上的单元格值指定….我需要根据Sheet A中的值删除表B中的整个行。

例如,在图表AI中,列X有10个值(是/否),并且我已经将相同的数据与公式返回到图表B.也就是说,如果在SheetA X1 =“是”,那么SheetB单元格Y1 = “完成”…如果SheetA X2 =“是”,那么SheetB单元格Y2 =“完成”…如果SheetA X3 =“否”,那么SheetB单元格Y1 =“Missing”..等等。

所以我only希望SheetB中的单元格值=“完成”的行在那里,因此希望单元格值=“缺less”的行被自动删除。 以这种方式,我将创build一个只包含具有指定单元格的“完成”值的行的表。

我知道Excel中有macros,但我从来没有在VBA中编写代码,语言处理程序和variables完全逃脱我。

有没有办法写一个可以在公式中调用的macros? 也就是ex)if(A10 =“是”,“”, delete row macro here

谢谢!

从你的问题的措辞,你似乎想创build一个function,可以在一个单元格中使用,将改变其他单元格。 这是不能做到的。 在公式中使用的函数仅限于更改单元格本身,而不是其他单元格。

更多的是一种方法来剥皮一只猫。 像安倍说,你不能用公式来改变其他细胞。 但是你可以使用VBA。 下面的子删除整个行的范围内的单元格等于1.但是你可以使它等于任何你想要的。

 Sub DeleteRows() Dim FoundCell As Range Set FoundCell = Worksheets("SheetB").Range("YourRange").Find(what:=1) Do Until FoundCell Is Nothing FoundCell.EntireRow.Delete Set FoundCell = Worksheets("SheetB").Range("YourRange").FindNext Loop End Sub 

当然这是额外的工作。 你应该做什么,而不是将数据从A复制到B,然后处理它,只需将完成的单元格从A复制到B.