有没有办法在VBA中的excel中的格式条件内编写本地语言-独立公式?
Is there a way to write a local language - independent formula within a format condition in VBA in excel?
我正在用 VBA 编写一个 excel 宏,其中包含一个简单的公式:
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=NOT(AND($L1>360;$K1<45))"
但是,这仅在 excel 中的语言设置为英语时有效。如果申请人的语言是德语,则看起来像这样:
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=NICHT(UND($L1>360;$K1<45))"
有没有办法使用适用于所有申请人的通用方法?
关于解决方案的一些要求:
- 不应该具体(没有从英语翻译成德语)
- 另外一个 select 带有语言 ID 的 case 语句不适用
- 有一个功能翻译器选项:由于管理员限制,这不能应用(我很好奇,如果有其他方法:))
- 更改公式以在单元格内使用它也不适用,因为我需要那里的格式条件
感谢任何帮助
实际上这是不可能的,但有一个解决方法。
首先注意英文版使用,
而不是;
作为分隔符,所以你的英文公式需要是=NOT(AND($L1>360,$K1<45))
.
解决方法是将该公式写入任何未使用的单元格。
Range("unused_cell").Formula = "=NOT(AND($L1>360,$K1<45))"
然后读那个
的汉化
Dim FormulaLocal As String
FormulaLocal = Range("unused_cell").FormulaLocal
并将其用作条件
Selection.FormatConditions.Add Type:=xlExpression, Formula1:=FormulaLocal
这会将条件转换为 Excel 的正确本地化。
条件格式的公式是区域特定的,没有选项 - 无论是在 VBA 还是在 GUI 中 - 都没有处理这个问题,除非你省略所有语言特定的关键字(或做一个“翻译”,如建议以前的答案)
这会起作用:
=($K1<45)*($L1>360)=0
我正在用 VBA 编写一个 excel 宏,其中包含一个简单的公式:
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=NOT(AND($L1>360;$K1<45))"
但是,这仅在 excel 中的语言设置为英语时有效。如果申请人的语言是德语,则看起来像这样:
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=NICHT(UND($L1>360;$K1<45))"
有没有办法使用适用于所有申请人的通用方法?
关于解决方案的一些要求:
- 不应该具体(没有从英语翻译成德语)
- 另外一个 select 带有语言 ID 的 case 语句不适用
- 有一个功能翻译器选项:由于管理员限制,这不能应用(我很好奇,如果有其他方法:))
- 更改公式以在单元格内使用它也不适用,因为我需要那里的格式条件
感谢任何帮助
实际上这是不可能的,但有一个解决方法。
首先注意英文版使用,
而不是;
作为分隔符,所以你的英文公式需要是=NOT(AND($L1>360,$K1<45))
.
解决方法是将该公式写入任何未使用的单元格。
Range("unused_cell").Formula = "=NOT(AND($L1>360,$K1<45))"
然后读那个
的汉化Dim FormulaLocal As String
FormulaLocal = Range("unused_cell").FormulaLocal
并将其用作条件
Selection.FormatConditions.Add Type:=xlExpression, Formula1:=FormulaLocal
这会将条件转换为 Excel 的正确本地化。
条件格式的公式是区域特定的,没有选项 - 无论是在 VBA 还是在 GUI 中 - 都没有处理这个问题,除非你省略所有语言特定的关键字(或做一个“翻译”,如建议以前的答案)
这会起作用:
=($K1<45)*($L1>360)=0