Использование exit
не является хорошей практикой.Вместо этого вы можете использовать что-то подобное:
Sub CommandButton1_Click()
If ComboBox2.Value = "" Or ComboBox3.Value = "" Or ComboBox6.Value = "" Or ComboBox7.Value = "" Or ComboBox8.Value = "" Or ComboBox9.Value = "" Then
MsgBox ("The form is not complete")
Else
'your code here
End If
end Sub
Использование метода .Activate
и выход из Excel для определения того, на какие ссылки ссылаются cells
или worksheets
или на рабочие книги, также не является хорошей практикой.
Попробуйте вместо этого:
Dim sht1 As Worksheet
Dim book as Workbook
Set book=Workbooks("Language Line April AM - 2019.xlsm")
Set sht1 = book.Worksheets("2019 LL DB")
Затем вы можете ссылаться на ячейки следующим образом:
sht1.cells(lastrow,1).value=""
То же самое относится к sheet7
.Это так же, как 2019 LL DB
?Тогда на него следует ссылаться соответственно.
Не ссылаясь на пользовательскую форму, к которой принадлежат ваши элементы управления, также не является хорошей практикой.Попробуйте вместо этого:
userform.ComboBox2.Value="" 'where userform is your userform's name
В качестве альтернативы, если вы хотите избежать повторения userform.xxx
, вы можете попробовать это:
With userform 'your userform's name
.combobox1.Value = ""
.textbox1.Value = ""
End With
Наконец, попробуйте использовать значимые имена для ваших переменных и объектов,Например, combobox6
можно переименовать в testerComboBox
или что-либо еще значимое для вас.
Использование передовых методов поможет вам лучше отслеживать ваш код, и вам будет проще устранять неполадки и отлаживать его.