Я пытаюсь обновить 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