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

Posted

技术标签:

【中文标题】VBA excel英语2007导致excel 2016法语错误消息【英文标题】:VBA excel English 2007 cause error msg on excel 2016 french 【发布时间】:2017-02-28 09:19:12 【问题描述】:

我有这个宏用于反转所选行的顺序。 这个宏在我的带有 excel 2007 的英文电脑上运行顺利,但在我的带有 excel 2016 的法文电脑上运行不畅。 当我在法国电脑上运行它时,这条线For j = 1 To UBound(Arr, 2) / 2给我一个错误消息

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

  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

【问题讨论】:

这似乎是完全有效的语法。如果您将其注释掉(以及匹配的 Next),那么代码会编译吗? 它可以在 2007 英文版上编译,但不能在 excel 法文 2016 版上编译 我认为您没有回答我提出的问题? 我猜 ''To'' 或 ''Ubound'' 可能与英语和法语不同 检查“参考”对话框(在 VBA 编辑器中转到“工具”>“参考”)并取消选择任何标记为缺失的参考。即使在不使用引用的代码中,缺少引用也会产生非常奇怪的语法错误 【参考方案1】:

您需要将 , 更改为 ;

这是一个区域设置导致问题,分号的原因是为了区分小数分隔符,在许多国家/地区是逗号而不是点。

另一种选择是更改 Excel 版本中的分隔符(、. 和 ;)

【讨论】:

以上是关于VBA excel英语2007导致excel 2016法语错误消息的主要内容,如果未能解决你的问题,请参考以下文章

在 excel 2007 vba 中找不到可安装的 ISAM

从 Access 2007 VBA 代码创建 .xlsx 文件时强制用户使用 Excel 版本

无法在 Excel 2007 VBA 中使用 Option Strict Off 进行后期绑定

字符串中的正确函数(Excel 2007 VBA)

Excel 2007 VBA ActiveWorkbook SaveAs 未保存...运行时错误 1004

Excel 2007 VBA - 数据透视表字段列表???产生错误