2

我看过(搜索过)类似的例子,但不是我想要的。

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

例如,在工作表 AI 中的 X 列有 10 个值(是/否),并且我已将相同的数据与公式链接回工作表 B。也就是说,如果在工作表 A X1 =“是”中,那么工作表单元格 Y1 = “完成”...如果 SheetA X2="Yes",则 SheetB 单元格 Y2="Done"...如果 SheetA X3="No",则 SheetB 单元格 Y1="Missing"..等等。

所以我only希望 SheetB 中单元格值 =“完成”的行存在,因此希望单元格值 =“缺失”的行被自动删除。以这种方式,我将创建一个表,其中仅包含指定单元格的“完成”值的行。

我知道 Excel 中有宏,但我从未在 VBA 中编写过代码,语言处理程序和变量完全让我无法理解。

有没有办法编写一个可以在公式中调用的宏;也就是说,例如)if(A10="Yes", "", delete row macro here)???

谢谢!

4

2 回答 2

1

从您问题中的措辞看来,您似乎想要创建一个可以在一个单元格中使用的函数,该单元格将改变其他单元格。那是做不到的。这些函数在公式中使用时仅限于更改单元格本身,而不是其他单元格。

于 2013-06-21T03:27:06.507 回答
0

不止一种给猫剥皮的方法。就像安倍说你不能用公式来改变其他单元格。但是你可以使用 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。

于 2014-03-07T16:56:28.403 回答