[英]Excel VBA Run-time error 1004 on Mac Excel 2016 (16.36)
Public ConnestionString As String
Public Function DriverConnector()
#If Mac Then
'if Mac then use this driver
ConnectionString = "ODBC;Driver={Amazon Redshift};SERVER={rs.asdfreqt2.us-east-1.redshift.amazonaws.com};UID=user_ro;PASSWORD=pwd;DATABASE=rptg;PORT=8192"
#End If
End Sub
以上是來自連接器功能的 Mac 片段
#If Mac Then
ThisWorkbook.Sheets(Sheet7.Name).Range("A1:A2").Clear
sqlCommand = "SELECT CASE WHEN usename IS NOT NULL THEN 'True' ELSE 'False' END AS authorized " & _
"FROM pg_user , pg_group WHERE " & _
"pg_user.usesysid = ANY(pg_group.grolist) AND " & _
"pg_group.groname='sssrfullaccess' AND usename = '" & LCase(Environ("USER")) & "'"
With ThisWorkbook.Sheets(Sheet7.Name).QueryTables.Add(Connection:=ConnectionString, Destination:=ThisWorkbook.Sheets(Sheet7.Name).Range("A1"), Sql:=sqlCommand)
.BackgroundQuery = False
.Refresh
End With
user_auth = ThisWorkbook.Sheets(Sheet7.Name).Range("A2").Value
If user_auth = "True" Then
MsgBox ("Access granted. Check Approved Filters tab for approval parameters.")
Else
reqAccess = MsgBox("You do not have permission to use this file. Click Yes to Close the File and request access, click No to close the file.", vbYesNo)
If reqAccess = vbYes Then
Call Mail_Access_Request_Outlook
ThisWorkbook.Close
End If
End If
Mac 的代碼片段。 我得到了 .Refresh 的 1004,我不知道為什么。 我已經驗證了 QueryTables.Add 中的 ConnectionString 是正確的,我在同一個地方驗證了 sqlCommand 是正確的。 它僅在 .Refresh 上拋出 1004
我知道在過去的 Excel for Mac 版本中這是一個問題,但是我找不到任何最近的內容或任何內容來說明它是否已修復。 我怎樣才能解決這個問題?
嘗試這個:
With ThisWorkbook.Sheets(Sheet7.Name).QueryTables.Add(Connection:=ConnectionString, Destination:=ThisWorkbook.Sheets(Sheet7.Name).Range("A1"), Sql:=sqlCommand).Refresh
BackgroundQuery:=False
End With
圍繞此錯誤代碼的其他答案表明 Refresh 是一種方法,應使用 With 來設置屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.