Вы можете добавить опции к вашему Msgbox
(полный список предоставлен здесь ).
По приведенной выше ссылке полный синтаксис для Msgbox
:
MsgBox ( prompt , [кнопки ,] [ title ,] [ helpfile , context ])
Вы хотите получить доступ кнопки вариант.На практике это выглядит примерно так:
Dim Ans 'Answer
Ans = Msgbox (message, vbYesNo)
If Ans = vbYes Then
'Do what if yes
Else
'Do what if no
End If
Кроме того, Select Case
отлично работает здесь
Sub CopyRanges()
Dim message1 As String: message1 = "You are about to change the size range, are you sure?"
Dim message2 As String: message2 = "You are about to change the size range to DUAL size, some POM's will not be available using the DUAL size range. Are you sure you wish to proceed?"
Dim message3 As String: message3 = "This size range is only for Fully Fashionesd Knitwear. Cut and sew styles please use the size 6-18 size range. Are you sure you wish to proceed?"
Dim Ans as VbMsgBoxResult
Select Case Sheets("Data").Range("D27")
Case "6-18"
Ans = MsgBox(message1, vbYesNo)
If Ans = vbYes Then
'What if yes?
Else
'What if no?
End If
Case "XS/S-L/XL"
Ans = MsgBox(message2, vbYesNo)
If Ans = vbYes Then
'What if yes?
Else
'What if no?
End If
Case "XXS-XXL"
Ans = MsgBox(message3, vbYesNo)
If Ans = vbYes Then
'What if yes?
Else
'What if no?
End If
End Select
End Sub
Наконец, если ваши 3 утверждения yes приводят к 3 неотъемлемо различным задачамВ завершение вы можете рассмотреть вопрос о создании 3 подводных лодок, которые выполняют различные задачи.Затем вы можете просто вызвать соответствующий саб в каждом случае.Он будет содержать этот код в чистоте, и я всегда призываю к разделению процедур, позволяющих использовать специальные макросы, а не универсальный подход