Друзья, всем снова привет!
Вводные:
У меня есть 2 надстройки
- New One.xlam (- служит для всех макросов)
- AutoUpdate.xlam (только для обновления New One.xlam)
Самостоятельно разобраться в автообновлении не смог, поэтому сделал по кнопке.
Как работало: Скачанный гугл диск - автообновление файла New One.xlam на нем из папки Addins (синхронизация папки) - кнопка прожимается у коллеги - отключается надстройка - скачивается файл с гугл диска - добавляется в надстройки - включается. Процесс завершен
Сейчас же происходит очень неприятная история: файл с гугл диска загружается битым. Его вес ~152кб, а загружается через макрос → вес в 2кб. Причины понять не могу.
Скачиваю по ссылке из макроса, вставляя ее в браузер - все нормально вес ~152кб, VBA не ругается.
Других способов автообновления собственной надстройки не знаю.
Ссылка на файл
Ссылка на этот же файл прямая для скачивания
Код по которому скачиваю и обновляю файл с заменой:
В чем может быть причина?
Может можно как-то оптимизировать автообновление?
Как лечить подобную ситуацию и с чем вообще возникает проблема?
Заранее спасибо гуру за советы
Вводные:
У меня есть 2 надстройки
- New One.xlam (- служит для всех макросов)
- AutoUpdate.xlam (только для обновления New One.xlam)
Самостоятельно разобраться в автообновлении не смог, поэтому сделал по кнопке.
Как работало: Скачанный гугл диск - автообновление файла New One.xlam на нем из папки Addins (синхронизация папки) - кнопка прожимается у коллеги - отключается надстройка - скачивается файл с гугл диска - добавляется в надстройки - включается. Процесс завершен
Сейчас же происходит очень неприятная история: файл с гугл диска загружается битым. Его вес ~152кб, а загружается через макрос → вес в 2кб. Причины понять не могу.
Скачиваю по ссылке из макроса, вставляя ее в браузер - все нормально вес ~152кб, VBA не ругается.
Других способов автообновления собственной надстройки не знаю.
Ссылка на файл
Ссылка на этот же файл прямая для скачивания
Код по которому скачиваю и обновляю файл с заменой:
| Код |
|---|
Sub DownloadAndInstallAddInW()
' Your code here to download the latest Add-In version
Dim downloadURL As String
'Application.AddIns("New One").Installed = False
downloadURL = "https://drive.google.com/uc?export=download&id=1-_XQWIJVgMUFU253id1d_dn8PlHfb5X-" ' Replace with the actual download URL
' Specify the local path for saving the downloaded Add-In
Dim localPath As String
localPath = Environ("USERPROFILE") & "\Desktop\New One.xlam" ' Replace with your desired local path
' Download the Add-In
DownloadFileW downloadURL, localPath
'Call Add_AddinW
MsgBox "Надстройка успешно обновлена!"
End Sub
' Function to download a file from a URL
Sub DownloadFileW(url As String, localPath As String)
Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
WinHttpReq.Open "GET", url, False
WinHttpReq.Send
If WinHttpReq.Status = 200 Then
Dim oStream As Object
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write WinHttpReq.ResponseBody
oStream.SaveToFile localPath, 2 ' 1 = no overwrite, 2 = overwrite
oStream.Close
Else
MsgBox "Failed to download the Add-In. Status: " & WinHttpReq.Status
End If
End Sub
Sub Add_AddinW()
If Application.AddIns("New One").Installed = True Then
Application.AddIns("New One").Installed = False
With Application
.AddIns.Add Environ("USERPROFILE") & "\Desktop\New One.xlam", True
End With
End If
If Application.AddIns("New One").Installed = False Then
Application.AddIns("New One").Installed = True
End If
End Sub
|
В чем может быть причина?
Может можно как-то оптимизировать автообновление?
Как лечить подобную ситуацию и с чем вообще возникает проблема?
Заранее спасибо гуру за советы
Изменено: - 13.02.2024 14:01:34