2016-11-08 573 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

相关问题