2016-11-08 574 views
0

而不是整個行被刪除,只有單元格(i,8)被刪除。這段代碼的作用是,直到最後一行爲止的每個單元格,如果單元格以IM開頭,突出顯示它,並且如果相應的單元格小於4,則刪除該行。謝謝爲什麼行(i).EntireRow.Delete刪除單元而不是行?

for i = 1 to LastRow Then 
    If Left(Cells(i, 1), 2) = "IM" Then 
     Cells(i, 1).Interior.Color = RGB(140, 220, 100) 
     If Cells(i, 8).Value <= 4 Then 
      Rows(i).EntireRow.Delete 
     End If 
    End If 
next i 
+0

您在代碼中缺少某些東西,第一行有語法錯誤。 – Vityata

+1

不知道爲什麼它不能正常工作,我懷疑你沒有發佈足夠的信息('for i = 1 to lastrwo then'is a dead giveaway)。我會說一件事,因爲'行(i)'已經是整行,所以不應該存在'EntireRow'。 'EntireRow'是你使用的範圍,如果你的範圍是不是*行的,例如'cells(3,1)'。 – paxdiablo

+0

謝謝。我嘗試了行(我)。首先刪除,但它也沒有工作。 LastRow似乎在我的代碼的其他部分工作正常,LastRow = .Range(「A」&.Rows.Count).End(xlUp).Row – darrenvba

回答

0

打開直接窗口。寫這兩個:

rows(5).entirerow.delete 
rows(5).delete 

看到第5行被刪除。你的代碼錯了,你可能正在運行其他的東西。

+0

謝謝,但我試過.delete和.entirerow.delete,都沒有工作。相反,他們只是消除了行中的高亮度。 – darrenvba

+0

打開一個新的工作簿。在第一列中寫入從1到20的數字。再試一次。 – Vityata

+1

謝謝。我試着完全按照原來的方式編寫我的代碼,但不是刪除所需的行,而是高亮顯示,並且工作正常。看起來像行(i).delete的問題,無論如何突出顯示的作品也是如此。 – darrenvba

相關問題