Избегайте диалога сохранения при автоматизации Excel из доступа к vba - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь обновить sh некоторые запросы питания, расположенные на листе ecxel, и он работает нормально, но после обновления я всегда получаю сообщение «Существует файл с именем xxxxxxx, уже существует в этом месте, не так ли? хотите заменить его? ".

Я не хочу, чтобы это сообщение появлялось, поскольку это автоматизированный процесс.

После нескольких попыток моя последняя неудачная версия такова:

public sub refresh_power_query(path_table) 
Dim pathlocal_excel As String
Dim excel_book As Workbook
Dim lTest As Long
Dim cn As WorkbookConnection
    pathlocal_excel = path_table
    Set excel_book = Workbooks.Open(pathlocal_excel)
    On Error Resume Next
For Each cn In excel_book.Connections
    lTest = InStr(1, cn.OLEDBConnection.Connection, "Provider=Microsoft.Mashup.OleDb.1", _
    vbTextCompare)
    If Err.Number <> 0 Then
      Err.Clear
      Exit For
    End If
    If lTest > 0 Then
            pp = cn.Name
            Back = excel_book.Connections(pp).OLEDBConnection.BackgroundQuery
            excel_book.Connections(pp).OLEDBConnection.BackgroundQuery = False
            cn.Refresh
            excel_book.Connections(pp).OLEDBConnection.BackgroundQuery = Back
            'Debug.Print cn.Name, "Refreshed", pp
    End If
Next cn
excel_book.Worksheets(1).Activate
hojaexcel.Worksheets(1).Range("a1").Select
' here i save the file again to store the refreshed querys
excel_book.SaveAs FileName:=path_table, 
                            FileFormat:=xlOpenXMLWorkbook, AccessMode:=1, 
                            ConflictResolution:=xlLocalSessionChanges
excel_book.Close (False)
end sub
...