Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.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 条件格式化宏给我运行时错误1004错误_Excel_Vba_Conditional Formatting - Fatal编程技术网

Excel 条件格式化宏给我运行时错误1004错误

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

打开excel工作表

橙色键入A1单元格

香蕉键入A2细胞

15键入B1单元格

23键入B2单元格

转到开发人员选项卡,然后单击录制宏按钮

单击确定以录制宏

同时选择A1和A2单元格

转到主页选项卡>条件格式化新规则使用公式确定要格式化的单元格

类型=B1>12

单击格式化按钮

单击编号选项卡

单击自定义按钮

键入“@

单击确定按钮

再次单击确定按钮

转到开发者选项卡,然后单击停止录制按钮

按Alt+F11以查看以下宏

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的注释,很好的调用,我对我的响应进行了编辑,以获得更清晰的代码:)