简单 从单元格中删除行?
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
这将(希望)做到这一点。
您好,我正在尝试删除 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
这将(希望)做到这一点。