Edg*_*yan 9 excel vba excel-vba regional-settings
我是否理解正确,如果我使用像这样的命令
Set myRange.formula = “=ROW(mySheet!R12)”
Run Code Online (Sandbox Code Playgroud)
我的宏将导致#NAME?单元格出现错误,如果它运行在俄语Excel上.我的意思是在这种情况下,上面的公式应该是硬编码的
Set myRange.formula = “=??????(mySheet!R12)”
Run Code Online (Sandbox Code Playgroud)
其中СТРОКА是SUM函数的俄语模拟.我不希望Excel足够聪明,可以在运行时翻译公式.那么有什么方法可以解决这个问题,最重要的是,无论languange如何,使宏工作正常的最通用的代码是什么?
小智 15
VBA非常以EN-US为中心.VBA的.Formula和.FormulaR1C1期望ROW功能.要使用区域语言函数'flavors',如СТРОКА,则应使用Range.FormulaLocal属性或Range.FormulaR1C1Local属性.
列表分隔符也是如此.,无论系统区域设置如何,在使用.Formula或.FormulaR1C1时,使用逗号(例如)分隔函数中的参数.如果您的系统使用分号(例如;)作为列表分隔符,则只应与.FormulaLocal或.FormulaR1C1Local一起使用.
工作表上的结果将正确反映Office安装的语言设置.
myRange.Formula = "=ROW(mySheet!$12:$12)"
myRange.FormulaR1C1 = "=ROW(mySheet!R12)"
myRange.FormulaLocal = "=??????(mySheet!$12:$12)"
myRange.FormulaR1C1Local= "=??????(mySheet!R12)"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6462 次 |
| 最近记录: |