Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 从单元格中简单删除行?_Excel_Excel Formula_Excel 2010_Excel 2007_Vba - Fatal编程技术网

Excel 从单元格中简单删除行?

Excel 从单元格中简单删除行?,excel,excel-formula,excel-2010,excel-2007,vba,Excel,Excel Formula,Excel 2010,Excel 2007,Vba,您好,我正在尝试删除B列中成员值超过1000的所有行。 我一步一步地尝试了这一点,并尝试首先从B细胞中去除所有不必要的数据,只留下一行成员。 我注意到有5行,成员行是第6行。我搜索了几个小时,仍然不知道如何删除前5行。你能帮我一个忙吗?我相信这很容易,但我找不到 我有这个: Option Explicit Sub Delete5TextLines() Dim c As Range, s Application.ScreenUpdating = False For Each c In Range(

您好,我正在尝试删除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文件:


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

编辑#1:

假设一个单元内至少有五条线,且这些线由Chr(10)分隔,则这将删除前五条线:

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

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

编辑#1:

假设一个单元内至少有五条线,且这些线由Chr(10)分隔,则这将删除前五条线:

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

好吧,这不是很优雅,但我想到的第一件事,就是这样

使用此公式删除大部分文本中的最后一个单词(“成员”)

假设您的文本为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," ",""))))))
现在您应该已经提取了成员数。如果此值为0,请执行以下操作: 如果(CellWithMemberCount).值小于5000,则 此工作簿。工作表(1)。行(i)。删除 如果结束 i=i-1 环 端接头
(希望)这样就可以了。

好吧,这不是很优雅,但我想到的第一件事,就是这样

使用此公式删除大部分文本中的最后一个单词(“成员”)

假设您的文本为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," ",""))))))
现在,您应该已经提取了成员数。如果此值为0,请执行以下操作 如果(CellWithMemberCount).值小于5000,则 此工作簿。工作表(1)。行(i)。删除 如果结束 i=i-1 环 端接头

(希望)这样就可以了。

下载您的示例时,什么都没有发生。@DaveExcel您好。我知道它不起作用。您下载的文件只包含需要处理的原始数据。我告诉您,我无法下载您的文件,当我单击“下载”时,什么都不会发生。@DaveExcel,我很抱歉。我把它弄脏了@在那里。对不起,我对这件事还不熟悉。你能给我举个例子吗?我下载你的例子时什么也没发生。@DaveExcel你好。我知道它不起作用。您下载的文件只包含需要处理的原始数据。我告诉您,我无法下载您的文件,当我单击“下载”时,什么都不会发生。@DaveExcel,我很抱歉。我把它弄脏了@在那里。对不起,我对这件事还不熟悉。你能给我举个例子吗?我发现:它删除了一列的第二行。我只是不知道如何调整它以删除第一行并运行5次这应该删除第一行,但它对我不起作用-你到底想删除什么?吵架?如第25行所示,还是要删除单元格中的文本行?如果你想删除前5行(!),你可以写(不那么优雅)工作表(1)。行(1)。删除5次。很抱歉理解错误。如上图所示,我想删除单元格B中的前5行,以便单元格B只包含“9877成员”。在“9877成员”之前有5行,但它们是长的。如果在记事本或升华中打开.csv,您将看到前5行。我只想把它们去掉:)还有最后一个问题:“XXX成员”是否总是在单元格BY中文本的末尾?我发现:它删除了列的第二行。我只是不知道如何调整它以删除第一行并运行5次这应该删除第一行,但它对我不起作用-你到底想删除什么?吵架?如第25行所示,还是要删除单元格中的文本行?如果你想删除前5行(!),你可以写(不那么优雅)工作表(1)。行(1)。删除5次。很抱歉理解错误。如上图所示,我想删除单元格B中的前5行,以便单元格B只包含“9877成员”。在“9877成员”之前有5行,但它们是长的。如果在记事本或升华中打开.csv,您将看到前5行。我只想把它们去掉:)还有最后一个问题:“XXX成员”是否总是放在单元格中文本的最后?谢谢,但我需要删除单元格中的前5行:)@AlexStanese查看我的编辑#1非常感谢!!!它工作得很好。你能告诉我如何在所有B细胞的循环中实现这一点吗?我试过这样做:但它似乎进入了一个内部循环,因为excel正在进行修改。@AlexStanese我会在几个小时后给你回复。@Tom嘿,我成功了!!我做了一个while单元格不是空的,插入了你的代码。现在它工作得很好。非常感谢你!你救了我一天!!谢谢,但我需要删除单元格中的前5行:)@AlexStanese请看我的编辑#1非常感谢!!!它工作得很好。你能告诉我如何在所有B细胞的循环中实现这一点吗?我试过这样做:但它似乎进入了一个内部循环,因为excel正在进行修改。@AlexStanese我会在几个小时后给你回复。@Tom嘿,我成功了!!我做了一个while单元格不是空的,插入了你的代码。现在它工作得很好。非常感谢你!你救了我一天!!