Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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/4/video/2.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 VBA_Vba_Excel_Excel 2010_Conditional Formatting - Fatal编程技术网

激活工作表时正在重新创建条件格式-Excel VBA

激活工作表时正在重新创建条件格式-Excel VBA,vba,excel,excel-2010,conditional-formatting,Vba,Excel,Excel 2010,Conditional Formatting,我在excel上的工作表上有代码,每次激活工作表时都会运行该代码 专用子工作表\u Activate()。我有一个条件格式的代码,但每次激活工作表时,它都会一次又一次地重新创建相同的格式。如果条件格式已经存在,我该如何编码,这样就什么也不做了 任何帮助都将不胜感激 代码: Private子工作簿\u Open() “比较w。Agg丢失代码:条件格式 将wb设置为工作簿 暗淡的最后一行 暗淡的最后一列与长的一样 设置wb=ActiveWorkbook 带wb.表(“与累计损失的比较”) .选择 '

我在excel上的工作表上有代码,每次激活工作表时都会运行该代码
专用子工作表\u Activate()
。我有一个条件格式的代码,但每次激活工作表时,它都会一次又一次地重新创建相同的格式。如果条件格式已经存在,我该如何编码,这样就什么也不做了

任何帮助都将不胜感激

代码:

Private子工作簿\u Open()
“比较w。Agg丢失代码:条件格式
将wb设置为工作簿
暗淡的最后一行
暗淡的最后一列与长的一样
设置wb=ActiveWorkbook
带wb.表(“与累计损失的比较”)
.选择
'格式设置为小数点后3位
LastRowAgg=.Cells(Rows.Count,1).End(xlUp).Row
LastColumnAgg=.Cells(4,Columns.Count).End(xlToLeft).Column
.Range(.Cells(5,2),.Cells(LastRowAgg,LastColumnAgg)).NumberFormat=“0.000”
'条件格式的公式
.Range(.Cells(5,2),.Cells(LastRowAgg,LastColumnAgg))。选择
Selection.FormatConditions.Add类型:=xlExpression,公式1:=_
“=和((ABS('Input Correlation'!B5:AT”&LastRowAgg&“-'Aggregate Loss Correlation'!B5:AT”&LastRowAgg&“)/'Input Correlation'!B5:AT”&LastRowAgg&“>)=(1/3),B5:AT”&LastRowAgg&““””
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
带选择。格式条件(1)。内部
.PatternColorIndex=xlAutomatic
.Color=255
.TintAndShade=0
以
Selection.FormatConditions(1).StopIfTrue=False
以
端接头

<代码> > p>只需测试<代码> FaltAtdio.Cudio大于0。< /P>而不是WorkSeTyAc激活,您可以考虑使用WorkBooOffice事件。@ Santosh,当我这样做并从文件中退出并再次打开时,同样的事情也会发生。当文件再次打开时,格式将被重新创建。我是否必须在工作簿_open事件中编写特殊代码来阻止这种情况发生?向我们显示您已有的代码。@rbaryyoung Edit
Private Sub Workbook_Open()

'Comparison w. Agg Loss Code: Conditional Formatting

Dim wb As Workbook
Dim LastRowAgg As Long
Dim LastColumnAgg As Long

Set wb = ActiveWorkbook


With wb.Sheets("Comparison w. Agg Loss")

    .Select
    'Format to 3 decimal places
    LastRowAgg = .Cells(Rows.Count, 1).End(xlUp).Row
    LastColumnAgg = .Cells(4, Columns.Count).End(xlToLeft).Column
    .Range(.Cells(5, 2), .Cells(LastRowAgg, LastColumnAgg)).NumberFormat = "0.000"

    'Formula for conditional formatting
    .Range(.Cells(5, 2), .Cells(LastRowAgg, LastColumnAgg)).Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=AND((ABS('Input Correlation'!B5:AT" & LastRowAgg & "-'Aggregate Loss Correlation'!B5:AT" & LastRowAgg & ")/'Input Correlation'!B5:AT" & LastRowAgg & ")>=(1/3),B5:AT" & LastRowAgg & "<>"" "")"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With Selection.FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 255
            .TintAndShade = 0
        End With
    Selection.FormatConditions(1).StopIfTrue = False

end with

end sub