我知道这个线程已经很久了,有人可能已经找到了一个优雅的解决方案,但我只是遇到了同样的问题,我需要应用条件格式而不修改工作表、创建临时单元格内容或命名范围。所有用户使用的都是英文版的Excel,所以公式中用到的函数是一样的,只是地域设置不同,所以参数分隔符也不同;在挪威语中,它是“;” 而不是“,”,就像欧洲其他地方一样,我猜。
例如,我需要自动创建条件格式,使用 Excel 公式作为以下标准:
.FormatConditions.Add xlExpression, Formula1:="=AND(ISNUMBER(B" & I & "),B" & I & ">=" & Ul1 & ")"
其中“Ul1”是在上一步中定义的值,它对解决方案并不重要。
但是,我需要能够在具有挪威语和英语设置的计算机上运行它
我在这里找到了 Andrew Pulsom 的一个非常简短的解决方案:https ://www.mrexcel.com/board/threads/french-vba-vs-english-vba.729570/ 。他只是把参数分隔符变成了一个变量:
If Application.International(xlDecimalSeparator) = "," Then
Sep = ";"
Else
Sep = ","
End If
Cl1 = "=AND(ISNUMBER(B" & I & ")" & Sep & "B" & I & "<" & Ul1 & ")"
对我来说就像一个魅力:)
我知道这只能解决部分问题,但我认为这可能适用于许多使用具有本地区域设置的英语 Office 安装的国际公司。