Excel动态范围来自Access代码和公式分隔符

时间:2017-08-25 13:05:29

标签: vba excel-vba access-vba excel

我目前正在重写一些在Excel工作簿中定义命名范围的旧Access代码。 旧代码如下:

oWorkbook.Names.Add "NameOfRange", "='Sheet1'!$A$1:$L2000"

使用oWorkbook从Access打开工作簿。

由于范围(行数)可以改变,我计划使用Offset和CountA函数使用动态命名范围,并编写以下代码来替换前一个:

oWorkbook.Names.Add "NameOfRange", "=OFFSET('Sheet1'!$A$1,0,0,COUNTA('Sheet1'!$A:$A),12)"

但是excel发送错误1004 There is a problem with this formula

从Excel工作簿执行的同一行代码工作正常,并给出预期的结果。

在我的电脑上,我使用混合的英语/法语国际设置,我的Office 2016是英语,所以我有一个ListSeparator ;

,替换为;时,下面的新公式有效:

oWorkbook.Names.Add "NameOfRange", "=OFFSET('Sheet1'!$A$1;0;0;COUNTA('Sheet1'!$A:$A);12)"

但是我需要我的功能来处理每个配置,而不仅仅是法语/英语的奇形怪状设置。

我尝试指定命名参数(Name:= ...RefersTo:=...),但它没有更正问题。从Access调用时,代码仍然需要本地分隔符(也许本地函数名称?不知道)。

所以我可以检索计算机excel列表分隔符(使用oWorkbook.Application.International(xlListSeparator)并用公式替换公式中的所有,,但也许我做错了,有更好的方法吗? / p>

0 个答案:

没有答案