Проблема установки формы пользователя в качестве надстройки в Excel и Word


Я создал форму пользователя vba, которая будет отображаться, когда я хочу распечатать что-то из exel или word. Но мне трудно установить его как надстройку (поэтому он будет применяться ко всем документам office, которые я пытаюсь распечатать).

Я нашел аналогичный вопрос и использовал код для установки, упомянутый там, но он дал мне ошибку.

Вот ссылка: Как создать макрос, который откроет форму пользователя из надстройки, не открывая книгу

Вот ошибка:

Произошла непредвиденная ошибка, пожалуйста, свяжитесь с CSC DM

Проектирование с приведенными ниже деталями ошибок.

Модуль = UserfulGeneric Code

Процедура = CreateMMMacroMenu

Строка = 0

Код Ошибки = 91

Текст ошибки = объект проверяемый или с блоковой переменной не установлен

Есть ли что-нибудь, что я могу сделать, чтобы решить эту проблему? Я новичок в vba, и любая помощь будет высоко оценена.
1 2

1 ответ:

Это оказывается довольно просто для Excel:

Чтобы продемонстрировать, файл TestAddIn.xlam создается с помощью ThisWorkbook.IsAddin = True , пользовательская форма и коды в модуле ThisWorkbook.

ProjectWindow


Коды в модуле ThisWorkbook :
Option Explicit

Private WithEvents App As Application

Private Sub App_WorkbookBeforePrint(ByVal Wb As Workbook, Cancel As Boolean)
    'Debug.Print Now & " " & "App_WorkbookBeforePrint: " & Wb.FullName
    UserForm1.Show
End Sub

Private Sub Workbook_Open()
    Set App = Application
    'Debug.Print Now & " " & "Loading " & ThisWorkbook.FullName
End Sub


UserForm1 :

Значок userform1
код :

Option Explicit

Private Sub UserForm_Initialize()
    Me.TextBox1.Text = ActiveWorkbook.FullName
End Sub


Теперь убедитесь, что вы добавляете эту надстройку обычно через пользовательский интерфейс Excel или используете VBA для установки в Превосходить. Но вам нужно перезапустить Excel после этого.

При печати новой рабочей книги: форма пользователя отображается до того, как она будет напечатана.
демонстрационная форма пользователя