简单从单元格删除行?

你好,我试图删除列B中的成员值超过1000的所有行。我尝试了这一步一步,试图摆脱所有不必要的数据从B单元格,只留下成员的行。 我注意到有5行,成员行是第6行。 我search了几个小时,但我仍然没有得到它如何删除第五条线。 你能帮我一下吗? 我确定它很容易,但我无法find它。

我有这个:

Option Explicit Sub Delete5TextLines() Dim c As Range, s Application.ScreenUpdating = False For Each c In Range("B1", Range("B" & Rows.Count).End(xlUp)) ********** Next c Application.ScreenUpdating = True End Sub 

这是.csv文件: http : //we.tl/vNcyfg9Wus

在这里输入图像说明

好吧,这不是很优雅,但是我想到的第一件事,那有点作品。

使用此公式删除您的批量文本中的最后一个单词(“成员”)

假设你的文本在A1:

 =LEFT(A1,FIND("|",SUBSTITUTE(A1," ","|",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-1) 

这个公式可以让你知道一个文本的最后一个词,在这种情况下是成员的数量(因为我们删除了“members”

假设你把上面的公式放在A2中

 =IF(ISERR(FIND(" ",A2)),"",RIGHT(A2,LEN(A2)-FIND("*",SUBSTITUTE(A2," ","*",LEN(A2)-LEN(SUBSTITUTE(A2," ","")))))) 

现在你应该提取成员的数量。 如果这个值是<5000,你可以用一个vba循环来删除这个行,看起来像这样:

 Sub deleteRowsAfterMembers Dim i as Integer i = ThisWorkbook.Sheets(1).Rows.Count While i > 0 Do If (CellWithMemberCount).Value < 5000 Then ThisWorkbook.Sheets(1).Rows(i).Delete End If i = i-1 Loop End Sub 

这将(希望)做到这一点。

每当使用循环删除整行时,应该从范围的底部开始,向上循环。

编辑#1:

假设一个单元格中至less有五行,并且这些行由Chr(10)分隔,那么这将删除前5行:

 Sub marine() ary = Split(ActiveCell.Value, Chr(10)) t = "" For i = 5 To UBound(ary) t = t & Chr(10) & ary(i) Next i If Len(t) > 1 Then t = Mid(t, 2) Else t = "" End If ActiveCell.Value = t End Sub