VBA excel English 2007导致excel 2016法语错误消息

VBA excel English 2007导致excel 2016法语错误消息,vba,excel,excel-2007,excel-2016,Vba,Excel,Excel 2007,Excel 2016,我用这个宏来反转所选行的顺序。 此宏在使用excel 2007的英语pc上运行平稳,但在使用excel 2016的法语pc上不起作用。 当我在法国pc上运行它时,j=1到UBound(Arr,2)/2的这一行会给我一个错误消息 ''编译错误:语法错误'' 你需要改变,改变 造成问题的是区域设置,分号的原因是为了区别于十进制分隔符,在许多国家,分号是逗号而不是点 另一个选项是更改Excel版本(,.and;)中的分隔符,这似乎是非常有效的语法。如果你把它注释掉(然后是匹配的下一个),那么代码是否编

我用这个宏来反转所选行的顺序。 此宏在使用excel 2007的英语pc上运行平稳,但在使用excel 2016的法语pc上不起作用。 当我在法国pc上运行它时,j=1到UBound(Arr,2)/2的这一行
会给我一个错误消息

''编译错误:语法错误''


你需要改变,改变

造成问题的是区域设置,分号的原因是为了区别于十进制分隔符,在许多国家,分号是逗号而不是点


另一个选项是更改Excel版本(,.and;)中的分隔符

,这似乎是非常有效的语法。如果你把它注释掉(然后是匹配的下一个),那么代码是否编译?它编译在2007年的英文版上,而不是2016年的excel法语版。我不认为你在回答我问的问题吗?我猜“To”或“Ubound”可能不同于英文版和法文版。检查“引用”对话框(在VBA编辑器中转到工具>引用)并取消选择任何标记为缺少的引用。缺少的引用往往会产生非常奇怪的语法错误,即使在不使用引用的代码中也是如此
  Sub FlipRows()
'Updateby20131126
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
Dim i As Integer, j As Integer, k As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Arr = WorkRng.Formula
For i = 1 To UBound(Arr, 1)
    k = UBound(Arr, 2)
    For j = 1 To UBound(Arr, 2) / 2
        xTemp = Arr(i, j)
        Arr(i, j) = Arr(i, k)
        Arr(i, k) = xTemp
        k = k - 1
    Next
Next
WorkRng.Formula = Arr
End Sub