激活工作表时正在重新创建条件格式-Excel VBA
我在excel上的工作表上有代码,每次激活工作表时都会运行该代码激活工作表时正在重新创建条件格式-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.表(“与累计损失的比较”) .选择 '
专用子工作表\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