我有一个宏删除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>
答案 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! 错误,并在看到错误后修复它们。