简单 从单元格中删除行?

SIMPLE Delete line from cell?

您好,我正在尝试删除 B 列中成员值超过 1000 的所有行。 我一步一步地尝试这个,首先尝试从 B 细胞中删除所有不必要的数据,只留下成员的行。 我注意到有 5 行,成员行是第 6 行。我搜索了几个小时,但仍然不明白如何删除前 5 行。你能帮我一下吗?我确定它很简单,但我找不到它。

我有这个:

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

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

编辑#1:

假设一个单元格中至少有五行并且这些行由 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

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

使用此公式删除大量文本中的最后一个词 ("members")

假设您的文字在 A1 中:

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

此公式为您提供文本的最后一个词,在本例中为成员数(因为我们删除了“成员”一词)

假设你把上面的公式放在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 

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