Excel中的“dynamic命名范围”可以使用OLEDB连接访问吗?

我正在尝试访问一个dynamic命名的范围 ,其中经常用到这个目的。

=offset(...,0,0,counta(...),...) 

dynamic命名范围在Microsoft Excel中,您可能有一个命名范围,必须扩展以包含新信息。本文介绍了一种创builddynamic定义名称的方法。

但是, OleDbConnection无法识别此对象,并抛出“Microsoft Access数据库引擎无法find对象'Arg4a'的通用错误。请确保该对象存在,并且正确拼写其名称和path名称。

在这里和那里我已经读过, dynamic named ranges不能在这个方法中使用,但是我想要一个确认,然后我可以继续思考一个替代方法。

如下所示,Excel不会列出dynamic版本的value 。 我可以在任何范围(工作簿或特定工作表)中轻松访问_Arg3 ,但是在Arg4中没有运气。

在这里输入图像说明

我正在使用一个简单的select,如下面的全局命名范围:

 var select = "SELECT * FROM _Arg4"; var cmd = new OleDbCommand(select, conn); 

和下面的connection string

 strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName + ";Extended Properties=\"Excel 12.0;HDR=" + HDR + ";IMEX=1\"" 
  • 因为这种情况也可以用这种语言来实现,所以我也加了vba标签,而且我用了很多与vba相关的来源来学习这个概念。
  • 我正在使用的方法的完整主体是在XLS导入下:将Excel文件导入到DataSet