尝试创建一个相对简单的宏来循环开始(命名)的每个工作表,并根据相关单元格的数字平均值将条件格式应用于特定列中的所有已用单元格
我一直坚持让条件格式化公式正确输入到单元格中。
示例:我想要的公式是= R2> 2(平均值(R2:R *))(其中*是最后使用的行)
但是,我在公式框中得到的是:=“R2> 2(平均值(R2:R230))”(230是该表上最后一次使用的行)
从脚本中删除语音标记会将其打破“预期:结束语句”
这里的代码,因为它可能还有其他错误:
@Injectable()
export class CustomErrorHandler extends ErrorHandler {
constructor() {
super();
}
handleError(error) {
switch (error.type) {
case 'custom': doTheThing(); return super.handleError(error); //?
default: return super.handleError(error); // ?
}
}
}
非常感谢!
答案 0 :(得分:1)
我认为这就是你要找的东西:
Sub Bread()
Dim ws As Worksheet
Dim LastRow As Long
For Each ws In ActiveWorkbook.Sheets
If ws.Name <> "Base Details" Then
ws.Cells.ClearFormats
LastRow = ws.UsedRange.Rows.Count
With ws.Range("R2:R" & LastRow)
.FormatConditions.Add Type:=xlExpression, Formula1:="=R2>2*Average($R$2:$R$" & LastRow & ")"
.FormatConditions(.FormatConditions.Count).Interior.Color = RGB(255, 0, 0)
.FormatConditions.Add Type:=xlExpression, Formula1:="=R2<0.1*Average($R$2:$R$" & LastRow & ")"
.FormatConditions(.FormatConditions.Count).Interior.Color = RGB(255, 255, 0)
End With
End If
Next ws
End Sub
答案 1 :(得分:0)
我看到两个问题。首先,正如Scott Craner所说,您在2
和Average
之间错过了一位运算符。其次,在公式的开头(在R2的第一个实例之前)需要=
:
Formula1:="=R2" & ">" & "2 * " & "(" & "Average" & "(" & "R2:R" & LastRow & "))"
希望有所帮助。