ListObjects.Add.QueryTable源数组string

在提出问题之前,我会提供一些背景知识。

我正试图查询一个SQL Server,并从数据中创buildExcel中的表。 因为我不熟悉如何通过使用数据 – >获取外部数据 – >从其他来源 – > Microsoft Querylogging的VBA中完成此操作。 在出现的对话框中,我select了别人提供给我的.DSN文件。 然后,我使用Microsoft Query接口来构build查询并将数据导入工作表。

录制的macros中的代码看起来像这样。 我将使用通用的术语而不是实际的代码。

With Sheet2.ListObjects.Add(SourceType:= 0, Source:=Array _ (Array("ODBC;DRIVER=SQL Server;SERVER=ServerName;UID=userid;Trusted_Connection=Yes;APP=Microsoft Windows Operating System;WSID=SomeString"), _ Array("A;DATABASE=DatabaseName")), Destination:=Range ("Sheet2!$A$1")).QueryTable 

我知道这不是理想的格式,这是我的问题的一部分。

https://msdn.microsoft.com/en-us/library/bb211863(v=office.12).aspx

从上面的文章,我知道SourceType:= 0是一个xlSrcExternal,或外部数据源。 这对我有意义。

当我到达Add方法的Source组件时,我的混乱开始出现。 从提供的文章,“当SourceType = xlSrcExternal,一个string值的数组指定一个连接到源,包含以下元素:

•0 – 到SharePoint网站的URL

•1 – ListName

•2 – ViewGUID

所以,首先,“string值数组”的意义究竟是什么,因为来自录制macros的代码看起来不像我认为是一个数组。 我知道通常一个数组被声明为这样的数组(“string1”,“string2”等)。 或者是arrays只logging一个值的数组? 换句话说,Array(“string1”)。 有没有人知道传递一个“数组string值”的目的,而不是传递一个string?

也有人知道为什么logging的macros具有这种格式/语法的细微差别? 换句话说,为什么它看起来有这样的语法Array(Array(“string1”),_(new line)Array(“string2”))? 为什么不只是数组(“string1”)? 这与第二行太长有关系吗?

我还有几个与这个主题有关的问题,但是这似乎是一个很好的开始..谢谢大家给予的任何帮助。