Excel 条件格式化宏给我运行时错误1004错误
打开excel工作表 将橙色键入A1单元格 将香蕉键入A2细胞 将15键入B1单元格 将23键入B2单元格 转到开发人员选项卡,然后单击录制宏按钮 单击确定以录制宏 同时选择A1和A2单元格 转到主页选项卡>条件格式化新规则使用公式确定要格式化的单元格 类型=B1>12 单击格式化按钮 单击编号选项卡 单击自定义按钮 键入“@ 单击确定按钮 再次单击确定按钮 转到开发者选项卡,然后单击停止录制按钮 按Alt+F11以查看以下宏Excel 条件格式化宏给我运行时错误1004错误,excel,vba,conditional-formatting,Excel,Vba,Conditional Formatting,打开excel工作表 将橙色键入A1单元格 将香蕉键入A2细胞 将15键入B1单元格 将23键入B2单元格 转到开发人员选项卡,然后单击录制宏按钮 单击确定以录制宏 同时选择A1和A2单元格 转到主页选项卡>条件格式化新规则使用公式确定要格式化的单元格 类型=B1>12 单击格式化按钮 单击编号选项卡 单击自定义按钮 键入“@ 单击确定按钮 再次单击确定按钮 转到开发者选项卡,然后单击停止录制按钮 按Alt+F11以查看以下宏 Sub Macro1() Range("A1:A2&quo
Sub Macro1()
Range("A1:A2").Select
Selection.NumberFormat = """""@"
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=B1>12"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
ExecuteExcel4Macro "(2,1,""""""@"")"
Selection.FormatConditions(1).StopIfTrue = False
End Sub
运行录制的宏时,您将看到错误(运行时错误1004)
您知道如何解决运行时错误1004吗?我做了一些研究,找到了您的解决方案宏记录器正在恢复为旧的ExecuteExcel4Macro命令,以便为条件格式规则设置数字格式。这是没有必要的 下面是代码的外观:
Sub Macro1()
With ActiveSheet.Range("A1:A2")
.FormatConditions.Delete 'Removes all the rules from the selection first
.FormatConditions.Add Type:=xlExpression, Formula1:="=B1>12"
.FormatConditions(.FormatConditions.Count).SetFirstPriority
.FormatConditions(1).NumberFormat = """""@"
.FormatConditions(1).StopIfTrue = False
End With
End Sub
旁注:带有ActiveSheet的
块不限定任何语句,应该删除;.Select
和With Selection
指令是无用的宏记录器工件,可以/应该用带有ActiveSheet.Range(“A1:A2”)
的替换,而Selection.FormatConditions.Count
部分可以是.FormatConditions.Count
,因为带有块的已经限定了范围(“A1:A2”)
/Selection
。感谢@Mathieu Guindon的注释,很好的调用,我对我的响应进行了编辑,以获得更清晰的代码:)