从 VBA 插入公式时出现不同语言问题
Different languages issue when inserting formula from VBA
我理解正确吗,如果我使用像
这样的命令
Set myRange.formula = “=ROW(mySheet!R12)”
我的宏将导致 #NAME?
错误出现在单元格中,如果它是 运行,比如说,俄语 Excel。
我的意思是,在这种情况下,上面的公式应该像
这样硬编码
Set myRange.formula = “=СТРОКА(mySheet!R12)”
其中 СТРОКА 是 SUM 函数的俄语类似物。我预计 Excel 不会聪明到可以在 运行 时间内翻译公式。
那么有没有办法解决这个问题,最重要的是,无论语言如何,都能使宏正常工作的最通用代码是什么?
VBA 非常以英美为中心。应该使用 VBA 的 .Formula and .FormulaR1C1 expect the ROW function. To use regional language function 'flavors' like СТРОКА then the Range.FormulaLocal property or Range.FormulaR1C1Local property。
列表分隔符也是如此。无论系统区域设置如何,在使用 .Formula 或 .FormulaR1C1 时,使用逗号(例如 ,
)分隔函数中的参数。如果您的系统使用分号(例如 ;
)作为列表分隔符,这应该只与 .FormulaLocal 或 .FormulaR1C1Local 一起使用。
工作表上的结果将正确反映 Office 安装的语言设置。
myRange.Formula = "=ROW(mySheet!:)"
myRange.FormulaR1C1 = "=ROW(mySheet!R12)"
myRange.FormulaLocal = "=СТРОКА(mySheet!:)"
myRange.FormulaR1C1Local= "=СТРОКА(mySheet!R12)"
我理解正确吗,如果我使用像
这样的命令Set myRange.formula = “=ROW(mySheet!R12)”
我的宏将导致 #NAME?
错误出现在单元格中,如果它是 运行,比如说,俄语 Excel。
我的意思是,在这种情况下,上面的公式应该像
Set myRange.formula = “=СТРОКА(mySheet!R12)”
其中 СТРОКА 是 SUM 函数的俄语类似物。我预计 Excel 不会聪明到可以在 运行 时间内翻译公式。 那么有没有办法解决这个问题,最重要的是,无论语言如何,都能使宏正常工作的最通用代码是什么?
VBA 非常以英美为中心。应该使用 VBA 的 .Formula and .FormulaR1C1 expect the ROW function. To use regional language function 'flavors' like СТРОКА then the Range.FormulaLocal property or Range.FormulaR1C1Local property。
列表分隔符也是如此。无论系统区域设置如何,在使用 .Formula 或 .FormulaR1C1 时,使用逗号(例如 ,
)分隔函数中的参数。如果您的系统使用分号(例如 ;
)作为列表分隔符,这应该只与 .FormulaLocal 或 .FormulaR1C1Local 一起使用。
工作表上的结果将正确反映 Office 安装的语言设置。
myRange.Formula = "=ROW(mySheet!:)"
myRange.FormulaR1C1 = "=ROW(mySheet!R12)"
myRange.FormulaLocal = "=СТРОКА(mySheet!:)"
myRange.FormulaR1C1Local= "=СТРОКА(mySheet!R12)"