我正在構建一個基於Excel的工具,它必須兼容Windows和Mac。該工具需要從數據中提取數據並將數據推送到SQL Server。我已經編寫和測試辦法做到這一點,在Windows的作品,應在的Mac as described here工作(儘管該鏈接涉及到Excel 2011):QueryTable CommandText Not Found
On Error GoTo err1
Dim connstring As String
Dim sqlstring As String
Dim dArr As Variant
Dim qt As QueryTable
Dim sht As Worksheet
Set sht = ThisWorkbook.Sheets(1)
connstring = "ODBC;DRIVER={SQL Server};SERVER=SERVERNAME;DATABASE=master;Trusted_Connection=yes"
sqlstring = "SELECT 1"
Set qt = sht.QueryTables.Add(Connection:=connstring, Destination:=sht.Range("A1"), Sql:=sqlstring)
With qt
.BackgroundQuery = False
.RowNumbers = False
.Refresh
End With
這種方法不會在Excel 2016年的Mac工作。實際上,當我記錄在Mac上添加連接的過程時,QueryTables.Add方法甚至不顯示連接或SQL參數...
而不是以編程方式創建表,我認爲解決方法可能是手動創建表格,然後根據需要以編程方式更改表格的CommandText(針對不同的參數等)。但是當我嘗試訪問QueryTable對象的CommandText屬性時,Mac VBEditor告訴我它找不到該成員!
是否有人在Excel 2016 for Mac中以編程方式成功創建ODBC QueryTables,或者這是Excel 2016的另一個缺陷?