我是否理解正确,如果我使用类似的命令
Set myRange.formula = “=ROW(mySheet!R12)”
我的宏会导致#NAME?
如果在俄语 Excel 上运行,单元格中会出现错误。
我的意思是在这种情况下,上面的公式应该是硬编码的
Set myRange.formula = “=СТРОКА(mySheet!R12)”
其中 СТРОКА 是 SUM 函数的俄语类似物。我预计 Excel 不会足够智能,能够在运行时转换公式。
那么有没有办法解决这个问题,最重要的是,最通用的代码是什么,可以使宏正确工作,而不管语言如何?
VBA 非常以 EN-US 为中心。 VBA的.Formula and .FormulaR1C1期望行功能。使用地方语言功能“风味”,例如СТРОКА那么Range.FormulaLocal 属性 or Range.FormulaR1C1局部属性应该被雇用。
对于列表分隔符也是如此。使用逗号(例如,
) 在使用 .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)"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)