Надстройка Excel удалена без согласия

2

Я запрограммировал надстройку excel в VBA, которая вызывает вызовы на сервер MySQL с использованием python. Моя проблема заключается в следующем:

время от времени, без видимых причин, надстройка удаляется со вкладки разработчика, и я больше не могу получить доступ к ее коду. Способом устранения этой проблемы является удаление и переустановка надстройки (Files-> OPtions-> Add-ins-> Go..). Поскольку это довольно утомительно, я обращаюсь за помощью.

Открыв существующий файл с помощью формул из моей надстройки, я сначала получаю следующее предупреждение

Приступая к этому при попытке редактировать ссылки

К сожалению, редактирование завершается с ошибкой и появляется сообщение об ошибке

Затем формулы остаются сломанными и не могут вызвать надстройку, как и не были найдены, и я должен удалить ее и повторно импортировать ее для работы книги.

Раньше какой-либо разработчик VBA сталкивался с проблемой?

  • 0
    Нет. Но вы можете сделать самонастройку надстройки, как исполняемый файл. Не то чтобы это действительно помогло тебе.
Теги:
excel-vba
excel
xlwings

1 ответ

3
Лучший ответ

Вот как я это сделаю, если я столкнусь с той же проблемой, что и ваша

  1. Закройте все открытые книги в Excel
  2. Создайте новую подпрограмму, которая называется Auto_Open в Auto_Open файле Excel
  3. Добавьте код, упомянутый в нижней части этой публикации
  4. Сохраните его в C:\Users\<your username>\AppData\Roaming\Microsoft\Excel\XLSTART после того, как вы ввели, протестировали и проверили код. Путь может меняться в зависимости от используемой ОС.

И все готово. В следующий раз, когда Excel запустится, он проверяет, установлена ли надстройка, а если нет, то она ее установит.

Непроверенные

Sub Auto_Open()
    If IsAddinLoaded("Your Add-In Name") = False Then
        With Application
            .AddIns.Add "Filepath to your Add-In", False
            .AddIns("Your Add-In Name").Installed = True
        End With
    End If
End Sub

Function IsAddinLoaded(AddinName As String) As Boolean
    On Error Resume Next
    IsAddinLoaded = Len(Workbooks(AddIns(AddinName).Name).Name) > 0
End Function
  • 0
    Спасибо! Это тот факт, что файл находится в папке XLSTART, которая автоматически запускает его при каждом запуске Excel? Кроме того, должен ли я сохранить его как надстройку или как простую книгу с макросами?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню