Excel VBA: создание кнопки «Очистить форму» - как правильно кодировать кнопку «Отмена», чтобы НЕ очищать форму - PullRequest
1 голос
/ 01 октября 2019

Excel VBA Super Beginner - я пытаюсь создать кнопку «Очистить все содержимое», которая очищает мою форму и в основном сбрасывает ее для пользователя. Я использую константу кнопки «vbOKCancel», и я думал, что нажатие кнопки «Отмена» остановит выполнение кода в этой точке. Но когда я нажимаю кнопку «Отмена», она все равно удаляет все данные из моей формы. Вот мой кодЧего мне не хватает ?:

Private Sub CommandButton23_Click()

MsgBox "Are you sure you want to clear this entire form?", vbOKCancel

Dim aRange As Excel.Range
Set aRange = Range("E7").MergeArea

Dim bRange As Excel.Range
Set bRange = Range("E9").MergeArea

Dim cRange As Excel.Range
Set cRange = Range("E11").MergeArea

Dim dRange As Excel.Range
Set dRange = Range("E15").MergeArea

Dim eRange As Excel.Range
Set eRange = Range("E17").MergeArea

Dim fRange As Excel.Range
Set fRange = Range("E19").MergeArea

Dim gRange As Excel.Range
Set gRange = Range("E23").MergeArea

Dim hRange As Excel.Range
Set hRange = Range("N7").MergeArea

Dim iRange As Excel.Range
Set iRange = Range("N9").MergeArea

Dim jRange As Excel.Range
Set jRange = Range("O11").MergeArea

Dim kRange As Excel.Range
Set kRange = Range("Q11").MergeArea

Dim lRange As Excel.Range
Set lRange = Range("N13").MergeArea

Dim mRange As Excel.Range
Set mRange = Range("N15").MergeArea

Dim nRange As Excel.Range
Set nRange = Range("O17").MergeArea

Dim oRange As Excel.Range
Set oRange = Range("Q17").MergeArea

Dim pRange As Excel.Range
Set pRange = Range("N23").MergeArea

Dim xRange As Excel.Range
Set xRange = Range("G27").MergeArea

aRange.ClearContents
bRange.ClearContents
cRange.ClearContents
dRange.ClearContents
eRange.ClearContents
fRange.ClearContents
gRange.ClearContents
hRange.ClearContents
iRange.ClearContents
jRange.ClearContents
kRange.ClearContents
lRange.ClearContents
mRange.ClearContents
nRange.ClearContents
oRange.ClearContents
pRange.ClearContents
xRange.ClearContents

End Sub

1 Ответ

2 голосов
/ 01 октября 2019

Обработка результата MsgBox:

Private Sub CommandButton23_Click()
    Dim response As VbMsgBoxResult
    response = MsgBox("Are you sure you want to clear this entire form?", vbOKCancel)

    If response = vbCancel Then Exit Sub

    ...
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...