Excel:"运行时错误-2147417848(80010108)"方法'删除'对象'范围'失败

时间:2018-04-30 20:20:41

标签: excel vba excel-vba ms-office conditional-formatting

我有一个宏删除Excel中受保护工作表中的选定表行,并且每当代码运行时都会在标题中收到错误。当我向工作表中引入10条条件格式规则时,这个问题就开始出现了,如果我清除任何条件格式的工作表,我就可以删除任意数量的行。我的代码删除下面的表行,以及调试指向的位置以清除错误。

=AND(COUNTIFS($E$14:$E$17,$E14,$J$14:$J$17,"Black")>1,$J14="Black")
=AND(COUNTIFS($E$14:$E$17,$E14,$J$14:$J$17,"White")>1,$J14="White")
=AND(COUNTIFS($E$14:$E$17,$E14,$J$14:$J$17,"Green")>1,$J14="Green")

感谢您的帮助!

*更新否#Ref!我的任何条件格式公式上的错误。 **更新我有大约10个条件格式公式,下面略有不同。

<!DOCTYPE html>
<html>

<head>
    <meta charset=utf-8>
    <meta name=viewport content="width=device-width,initial-scale=1">
    <title>chatbot</title>
    <script src=https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.js></script>
    <link href=/static/css/build.css rel=stylesheet>

</head>

<body>
    <div id=app></div>

    <script type=text/javascript src=/static/js/manifest.js></script>
    <script type=text/javascript src=/static/js/vendor.js></script>
    <script type=text/javascript src=/static/js/build.js></script>

</body>

</html>

1 个答案:

答案 0 :(得分:1)

条件格式很可能在某处出现 #REF! 错误,因此Excel不允许删除。要查看条件格式中的所有公式,请运行以下命令:

Sub ListAllConditionalFormat()

    Dim cf      As FormatCondition
    Dim ws      As Worksheet
    Dim l       As Long
    Dim rngCell As Range

    On Error Resume Next

    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Worksheets("Report").Cells.Clear

    For Each ws In ThisWorkbook.Worksheets
        Debug.Print ws.Name

        For Each cf In ws.Cells.FormatConditions
            l = 1 + l
            With Worksheets("Report")
                Set rngCell = .Cells(l, 1)
                rngCell = cf.AppliesTo.Address
                rngCell.Offset(0, 1) = cf.Type
                rngCell.Offset(0, 2) = "'" & cf.Formula1
                rngCell.Offset(0, 3) = cf.Interior.Color
                rngCell.Offset(0, 4) = cf.Font.Name
                rngCell.Offset(0, 5) = ws.Name
                rngCell.Offset(0, 6) = "'" & cf.AppliesTo.AddressLocal
                rngCell.Offset(0, 7) = "'" & cf.Formula2
            End With
        Next cf
    Next ws
    Debug.Print "END!"

End Sub

请确保您有一个名为Report的工作表,其中所有内容都为空。条件格式的信息将在那里。查看 #REF! 错误,并在看到错误后修复它们。