2015-09-16 101 views
-3

我試過在這裏搜索,一般都是通過Google找到適合我需求的解決方案,但都是空的。我是使用Excel VBA的新手,但我認爲這是在這種情況下處理事情的正確方法。有條件的聲明根據兩列中的值刪除行

我有一個很大的電子表格 - 許多工作表,每個工作表都有成千上萬的行。每個工作表都有相似的數據。有5列,A-E。 C列有重複數據,E列消除了它的歧義。當「條件c28 = c29 = c30 = c31,e28:e31」包含'.tif',然後刪除其中e28:e31不是'.tif'的行時,我正在尋找的方法是刪除行。 「

我希望這是有道理的。

感謝您的幫助!

+1

我看到你在Excel中是VBA的新手,有沒有你迄今嘗試過的東西? – Soulfire

+3

哈哈「空着」? http://stackoverflow.com/questions/11562093/delete-rows-based-on-condition-in-a-column?s=6|2.6246 http://stackoverflow.com/questions/14613609/how-to-delete -row-based-cell-value?s = 4 | 2.8762 http://stackoverflow.com/questions/11317172/delete-row-based-on-condition?s=7|2.6021 http://stackoverflow.com /questions/30055943/how-to-delete-rows-based-on-criteria-from-2-columns-in-vba?s=13|2.3984 http://stackoverflow.com/questions/28349141/delete-rows-基於標準的多列?s = 14 | 2.3781 – findwindow

+1

@findwindow - 你真的笑出聲來嗎?我只是試圖想象你坐在你的電腦像一個鬣狗在這咯咯咯咯... –

回答

0

我不明白爲什麼人們浪費了很多時間來精確地搜索他們需要的代碼,以解決他們獨有的問題。學習VBA的基礎知識並自行編寫解決方案會容易得多

搜索「Excel VBA教程」。有很多選擇,所以選擇一個符合你的學習風格。我更喜歡書籍。我參觀了一個好的圖書館;借用了最有前途的Excel VBA Primer在家學習,然後購買了我最喜歡的永久參考書。幾個小時學習VBA,你可以解決這個問題,下一個和下一個沒有浪費時間在網絡上游蕩,看看你不明白的代碼。

想想你的需求。我假設c28=c29=c30=c31就是一個例子。 c31=c32=c33=c34也會引起您的興趣。你需要概括你的規範。

我將用Cells(28, "C")替換c28,這恰好是VBA語法,但在此階段任何合適的符號都可以使用。我想你的意思是:

Cells(RowCurrent, "C") = Cells(RowCurrent+1, "C") And _ 
Cells(RowCurrent, "C") = Cells(RowCurrent+2, "C") And _ 
Cells(RowCurrent, "C") = Cells(RowCurrent+3, "C") 

RowCurrent所有的允許值。

RowCurrent的允許值是多少?如果您有一個標題行,則第一個數據行將爲2,因此RowCurrent的最小值將爲2。如果RowLast是工作表的最後一個使用行,則RowCurrent的最大值爲RowLast – 3

當你說e28:e31你的意思是細胞e28,c29,c30和e31已合併?

你的意思e28:e31包含.tife28:e31結束.tif?你會保留abc.tif.txt?編程時,您的規格必須絕對精確。電腦會按照你所說的去做,而不是你的意思。

你說你有很多工作表,並且你想依次閱讀它們中的每一個。我希望任何教程都能解釋如何遍歷工作簿的所有工作表。或者,這是您可以搜索的問題。如果你有一個單一的要求,你通常可以找到一個合適的匹配。換句話說,尋找D可能很容易,但尋找A和D並且我很困難。

每個工作表都有一個外部循環。您需要查找每個工作表的最後一個使用行。你有一個內部循環的每個行塊。你需要刪除不感興趣的塊。我希望你學習如何從你的教程中完成每一個。你能把這四種獨立的技術放在一起嗎?

我只能看到一個嚴重的併發症與您的要求;你不刪除不感興趣的行,你保持有趣的行。如果您檢查第2到第5行並發現它們不符合您的模板,則不能刪除它們,因爲第3到第6行可能符合您的模板。我不相信你可能會找到任何符合這個要求的代碼。你將不得不自己設計解決方案。我有幾條建議,但在提出建議之前,我需要對您的確切要求有更多的信心。