我不是很擅長於excel,並且不確定是否可能,但我正在使用一個非常大的excel電子表格和一些單元格列B包括諸如N/A
的值。如果B列中的任何單元格包含字符串X,則刪除行並將單元格向上移動
我想知道是否有辦法創建一些條件語句來刪除所有行,如果該行的B列中的單元格包含N/A
,並在刪除後將單元格向上移動?
我真的很感謝任何建議,因爲這會爲我節省很多時間。
非常感謝提前!
我不是很擅長於excel,並且不確定是否可能,但我正在使用一個非常大的excel電子表格和一些單元格列B包括諸如N/A
的值。如果B列中的任何單元格包含字符串X,則刪除行並將單元格向上移動
我想知道是否有辦法創建一些條件語句來刪除所有行,如果該行的B列中的單元格包含N/A
,並在刪除後將單元格向上移動?
我真的很感謝任何建議,因爲這會爲我節省很多時間。
非常感謝提前!
從自下而上的工作,檢查B
列中的值N/A,如果找到了,你可以使用:
ActiveSheet.Cells(currentRow,1).EntireRow.Delete
感謝您的答覆。我如何使用這個來創建一個條件語句來檢查行中的列是否包含「N/A」? – AnchovyLegend
@AnchovyLegend您有沒有使用VBA的經驗?只是試圖衡量我的答案 –
此外,我想在哪裏插入此代碼?我很抱歉,我對excel很陌生,沒有我對VBA沒有任何經驗...... – AnchovyLegend
如果這些#N/A(系統)錯誤,則使用GoTo Special
(常量,錯誤),使這個直截了當的:
Sub DeleteErrorRows()
On Error Resume Next 'in case there are no errors in cells
Range("B:B").SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
On Error GoTo 0 'resume error handling
End Sub
我懷疑它可能使用Replace
替換「N/A」與「#N/A」,然後使用我的方法,雖然我的天堂」沒有測試過這個。 新增是的,它應該工作:
Sub DeleteErrorRows()
Range("B:B").Replace "N/A", "#N/A"
On Error Resume Next 'in case there are no errors in cells
Range("B:B").SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
On Error GoTo 0 'resume error handling
End Sub
其實,我覺得這可能是更普遍的應用,取代以「#N/A」的一些單元格值作爲一種機制,用於刪除行:)
+1如果單元類型實際上是基於錯誤的,那麼答案很好。因爲它也可能是基於公式的考慮'Range(「B:B」)。SpecialCells(xlFormulas,16).EntireRow.Delete' – brettdj
@brettdj謝謝。這應該是你的語句中的'xlCellTypeFormulas' - 儘管它與'xlFormulas'具有相同的值並不重要。只是爲了澄清,佈雷特的陳述中的16個指出了導致錯誤的公式。 –
唐不使用循環。使用自動過濾器。使用它作爲您的指南:[有效的方法來刪除整行,如果單元格不包含'@'](http://stackoverflow.com/a/16901714/138938) –