вы можете использовать операторы "или" или "и", как если бы вы использовали не VBA Excel, это просто немного другое форматирование. Но вы находитесь на правильном пути!
В принципе, если оба поля не заполнены, появится сообщение, требующее значения в одном из полей. Если один или оба заполнены, то хорошо. IE
if textbox2.value = "" and textbox3.value = "" then
msgbox "You must enter a value in textbox 2 and/or 3", vbCritical
exit sub
end if
для оператора "или", просто замените "и" на "или"
Отредактируйте, чтобы добавить:
для прохождения нескольких итераций через вашу пользовательскую форму для проверки данных и проверки, заполнены ли поля, et c. Я бы начал сверху вниз и сделал бы проверку для каждого.
if textbox1.value = "" then
msgbox "Please fill in " & textbox1.name (or .tag or some other way to identify the item), vbcritical, "Error"
exit sub
elseif combobox2.value = "" then
msgbox "Please fill in " & combobox2.name, vbcritical, "Error"
exit sub
elseif textbox6.value = "" then
msgbox "Please fill in " & textbox6.name, vbcritical, "Error"
exit sub
elseif textbox2.value = "" or textbox3.value="" then
msgbox "Please fill in either textbox 2 or 3", vbcritical, "Error"
exit sub
end if
Если они просты и имеют путь к l oop, как описано другим джентльменом, вы можете использовать общую формулу c, такую как
for i=1 to 5
if me.controls("Textbox" & i).value = "" then
msgbox "Please fill in " & me.controls("textbox" & i).name, vbcritical, "Error"
exit sub
exit for
end if
next i
I возможно, будет использовать комбинацию, если у вас много ящиков. Скажем, есть 10 обязательных полей, я могу использовать l oop через все 10 обязательных, а затем просто использовать отдельные операторы if then, используя оператор "или", чтобы проверить те, которые являются одним или другим