Я хотел бы попросить вашей помощи с этим кодом:
Option Explicit
Private WithEvents App As Excel.Application
Private Sub Workbook_Open()
Set App = Application
End Sub
Private Sub App_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI As Boolean, Cancel As Boolean)
App.EnableEvents = False
With App.Dialogs(xlDialogSaveAs)
Call .Show(MakeDocName, xlOpenXMLWorkbookMacroEnabled)
End With
App.EnableEvents = True
Cancel = True
End Sub
Function MakeDocName() As String
Dim theName As String
Dim pName As String
Dim pUName As String
pName = Sheets("DESCRIPTION").Range("b4")
pUName = UCase(pName)
theName = pUName & " RN " & Sheets("DESCRIPTION").Range("b2")
MakeDocName = theName
End Function
По сути, я ожидаю от этого кода возможности сохранить файл с указанным именем и форматом. Название берется непосредственно из листа «ОПИСАНИЕ». Формат должен быть .xlsm.
Проблема в том, что код работает не только внутри ThisWorkbook, но и во всех открытых файлах Excel.
Есть ли возможность сделать этот код доступным только для указанного файла, в который он включен?