Mac*_*zak 7 excel vba excel-vba
我有这个代码,我的问题是,它是否适用于英文版的excel?我的意思是本地公式将适用于excel的英文版本?(ORAZ意思是和我的语言).
当我把ORAZ它只能在我的电脑上工作,但是在英语电脑上它没有,当我把它并没有给出错误但它不起作用,任何想法如何帮助我?
With Range("$H$6:$FH$50").FormatConditions _
.Add(xlExpression, xlFormula, "=ORAZ(H$7<=$G$7,(H$7+7)>$G$7)")
With .Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight2
.TintAndShade = 0.799981688894314
End With
End With
Run Code Online (Sandbox Code Playgroud)
我在我的(巴西葡萄牙语)Excel 2013 中进行了测试,发现确实需要本地化版本FormatConditions.Add()中的公式。它不像那样理解“规范公式” 。Range.Formula
即使用于转换公式的方法不是最合适的,以下方法也应该有效:
Dim temp As Range
' The temp cell is just for translating our formula.
' Set it to some cell your sheet will never use.
Set temp = ActiveSheet.Range("Z1000")
temp.Formula = "=AND(E$1<=$E$2,(E$1+2)>$E$2)" ' use English formula here
With Range("$A$1:$D$4").FormatConditions _
.Add(Type:=xlExpression, Formula1:=temp.FormulaLocal)
With .Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight2
.TintAndShade = 0.799981688894314
End With
End With
Call temp.Clear ' do away with the temp cell
Run Code Online (Sandbox Code Playgroud)
请注意,我还删除了xlFormula调用中无用的参数.Add(),并明确了可选参数名称。