VBA范围函数突然只接受局部参数(pt BR)

VBA范围函数突然只接受局部参数(pt BR),vba,excel,Vba,Excel,我在Windows7上使用的是巴西葡萄牙语版的Excel。 我有一个电子表格,我在同一台机器上用了几个月,同样的excel版本,同样的等等,还有一个vba代码,它一直工作到今天。据我所知,我什么也没变 代码是:Range(“tabReport[[#All],[Valor]]) 今天当我运行宏时,它给了我一个错误:运行时错误“1004”:对象“\u Global”的方法“Range”失败 经过几次尝试和错误,我更正为:Range(“tabReport[[Tudo];[Valor]]) 注: 1)

我在Windows7上使用的是巴西葡萄牙语版的Excel。 我有一个电子表格,我在同一台机器上用了几个月,同样的excel版本,同样的等等,还有一个vba代码,它一直工作到今天。据我所知,我什么也没变

代码是:Range(“tabReport[[#All],[Valor]]) 今天当我运行宏时,它给了我一个错误:运行时错误“1004”:对象“\u Global”的方法“Range”失败

经过几次尝试和错误,我更正为:Range(“tabReport[[Tudo];[Valor]])

注: 1) “都铎”被翻译成pt BR。 2) 逗号“,”变为分号“;”,在pt BR本地语法中是等效的

让我感到不安的是这种不知从何而来的变化,它可能会影响其他工作簿。 此外,我更喜欢mantain我的宏在美国英语(全球)语法模式,所以它更容易谷歌和mantain


有人知道我如何控制这种行为吗?

听起来像个bug。最好是通过父对象
ListObject
访问范围。在Excel中,参数分隔符字符在Windows中由“区域和语言->其他设置->列表分隔符”指定。对于工作簿中已经存在的公式,此选项会自动更新,但在以下情况下不会在宏的字符串中更新:changed@Rory我试过这样做:ActiveWorkbook.Worksheets(“Relatório mês”).ListObjects(“tabReport”).ListColumns(“Valor”)但它是一个ListColumn对象,excel抱怨数据类型。@chancea我检查了我的列表分隔符,它是分号,但总是分号。另外,Range过去只接受US语法,而local直到今天才被允许执行!解决了关闭和重新打开excel的问题。我会把你的臭虫建议吐出来@Rory,因为这就是你所说的。