爱问知识人 爱问教育 医院库

Excel中怎样一次性删除所有标注为红色的行

首页

Excel中怎样一次性删除所有标注为红色的行

我的一个Excel中大概有1400条数据,以前为了区分将其中的某些行标注成了红色,现在想要把红色行全部删除,我从网上搜索再改了改写了两段代码,但是实现起来都有点问题,请各位高手帮我看看,有没有好的实现方法请指教,先谢谢了!
1)
Sub Test1()
    Dim arrRow() As String
    Dim num As Long
    Dim i%, j%
    num = 0
    ReDim arrRow(num)
    With ActiveSheet
        '存储所有红色的行号
        For i = 3 To .[c65536].End(xlUp).Row
            If Rows(i).Font.ColorIndex = 3 Then
                arrRow(num) = i
                num = num + 1
                ReDim Preserve arrRow(num)
            End If
        Next i
        strTemp = ""
        '选中所有数组中对应的行
        For j = 0 To UBound(arrRow) - 1
            If strTemp <> "" Then
                strTemp = strTemp + "," + arrRow(j) + ":" + arrRow(j)
            Else
                strTemp = strTemp + arrRow(j) + ":" + arrRow(j)
            End If
        Next j
        Range(strTemp).Select
        '删除选中的行(标注为红色的行)
        Selection.Delete 
    End With
End Sub
这段代码有一个问题,应为Excel中红色的行数比较多,我试验是只要选中的行数大于30行,就会提示出错:方法'range'作用于对象'_Global'时失败(我不知道是不是我的代码哪里写错了,请指教)。
2)
Sub Test2()
Dim i%, n%
    With ActiveSheet
        For i = 3 To .[c65536].End(xlUp).Row
            If Rows(i).Font.ColorIndex = 3 Then
                Rows(i).Delete
            End If
        Next i
    End With
End Sub
这段代码因为行数是依次+1查看的,标注为红色的行如果是连续的,上面一行被删除后,下面一行就会漏删。

我想应该有更好的方法可以一次实现,只是我刚开始学习vba编程,只能想到这两种方法,让大家笑话了!

提交回答
好评回答
  • 2007-09-26 17:53:46
    Sub Test2() 
    Dim i%, n% 
    With ActiveSheet 
    For i = .[c65536]. To 3 End(xlUp).Row 
    If Rows(i).Font.ColorIndex = 3 Then 
    Rows(i).Delete 
    End If 
    Next i 
    End With 
    End Sub 
    从后向前删。其实不用65535,你可以用ActiveSheet.UsedRange.Rows.Count得到实际的行数

    花***

    2007-09-26 17:53:46

其他答案

    2007-09-26 17:07:48
  • 第2种方法比较直接,稍加修改就可以了。
    Sub Test2() 
    Dim i%, n% 
    With ActiveSheet 
    // For i = 3 To .[c65536].End(xlUp).Row 
    i = 2
    while i<1500  //按你说的,有1400行
    i = i + 1     //累加
    If Rows(i).Font.ColorIndex = 3 Then 
    Rows(i).Delete 
    i = i - 1    //行数减回
    End If 
    // Next i 
    wend 
    end
    End With 
    End Sub 
    

    河***

    2007-09-26 17:07:48

类似问题

换一换
  • 软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):