2013-06-20 27 views
2

我已經看到(搜索)了類似的示例,但不是我正在查找的內容。Excel:當其他單元格等於定義的值時刪除整行

我在Excel中有一個工作簿,它有幾張工作表A和B.這些工作表有一堆數據,所以爲了從工作表A顯示工作表B上最重要的數據,我只想鏡像我要根據SheetA上的單元格值指定行....我需要根據Sheet A中的值刪除圖紙B中的整個行。

例如,在Sheet AI中,列X具有10個值(是/否),並且我已經將相同的數據與公式返回到工作表B.也就是說,如果在SheetA中X1 =「是」,那麼SheetB單元格Y1 =「完成」...如果SheetA X2 =「是「,然後SheetB單元格Y2 =」完成「...如果SheetA X3 =」否「,然後SheetB單元格Y1 =」缺少「..等等。

所以我only希望SheetB中的單元格值=「完成」的行在那裏,因此希望單元格值=「缺少」的行被自動刪除。以這種方式,我將創建一個只包含具有指定單元格的「完成」值的行的表格。

我知道Excel中有宏,但我從來沒有在VBA中編寫過代碼,語言處理程序和變量完全逃脫我。

有沒有辦法寫一個可以在公式中調用的宏;也就是e.x)if(A10 =「是」,「」,delete row macro here)???

謝謝!

+0

錄製宏總是一個很好的開始位置,它會告訴你如何刪除一行在vba。從那裏,你可以調用它,你可以在這個例子中使用if語句。 – redditor

回答

1

從你的問題的措辭看來,你似乎想創建一個功能,可以在一個細胞中使用,將改變其他細胞。這是不能做到的。這些函數在公式中使用時,僅限於更改單元格本身,而不是其他單元格。

0

更多然後一個方法去皮貓。像Abe說的你不能用公式來改變其他細胞。但是你可以使用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.

相關問題