При создании UserForms столкнулся с тем, что при привязке кнопок к написанным процедурам с параметрами, один из которых является название листа, возникает следующая проблема: в случае если я хочу изменить название листа, то мне приходиться менять соответствующий параметр в каждой процедуре, которая привязана к кнопке.
Ниже две процедуры, которые при нажатии на соответствующие кнопки удаляют или создают лист в книге(CommandButton1_Click, CommandButton2_Click). Если я хочу изменить название удаляемого/создаваемого листа с "Main" на "Главный лист", то мне необходимо это сделать в двух процедурах (CommandButton1_Click, CommandButton2_Click).
Хотелось бы изменить всего лишь в одном месте. Как это можно реализовать? Подскажите, пжл, как подойти к решению этой проблемы? Спасибо!
Код
'кнопка удаления существующего в книге листа
Private Sub CommandButton1_Click()
Call SheetDeleter("Main")
End Sub
'кнопка создания несуществующего в книге листа
Private Sub CommandButton2_Click()
Call SheetCreator("Main")
End Sub
'Процедура удаления листа
Sub SheetDeleter(ByVal pSheetName As String)
If ExistSheetWithThatName(pSheetName) Then
Application.DisplayAlerts = False
ThisWorkbook.Sheets(pSheetName).Delete
Application.DisplayAlerts = True
End If
End Sub
'Процедура создания листа
Sub SheetCreator(ByVal pSheetName As String)
If Not ExistSheetWithThatName(pSheetName) Then
ThisWorkbook.Sheets.Add.Name = pSheetName
End If
End Sub