Давайте посмотрим, что ComboBox10.Text <> "A" Or ComboBox10.Text <> "B"
будет делать для значений «A», «B» и «C».
Если ComboBox10.Text имеет значение «A», то ComboBox10.Text <> "A"
имеет значение False и ComboBox10.Text <> "B"
Верно. Это дает нам False Or True
, которое разрешается в True.
Если ComboBox10.Text имеет значение «B», то ComboBox10.Text <> "A"
имеет значение True, а ComboBox10.Text <> "B"
- False. Это дает нам True Or False
, которое преобразуется в True.
Если ComboBox10.Text имеет значение «C», то ComboBox10.Text <> "A"
- True, а ComboBox10.Text <> "B"
- True. Это дает нам True Or True
, которое разрешается в True.
Итак, для любого допустимого ввода это условие Or вернет True. Он мог только вернуть False для входа, который одновременно был равен как «A», так и «B».
Исправить это просто: просто используйте UserForm5.ComboBox10.Text <> "A" And UserForm5.ComboBox10.Text <> "B"