Если combobox равно пустому, не копируйте данные пользовательской формы в excel sheet

У меня есть 2 подфункции:

Sub Product1() Dim lRow As Long Dim ws As Worksheet Set ws = Worksheets("Inventory") lRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _ SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1 With ws If IsEmpty(UserForm5.ComboBox5.Value) Then Exit Sub Else .Cells(lRow, 1).Value = UserForm5.TextBox1.Value .Cells(lRow, 2).Value = UserForm5.ComboBox2.Value .Cells(lRow, 3).Value = UserForm5.ComboBox3.Value .Cells(lRow, 4).Value = UserForm5.ComboBox4.Value .Cells(lRow, 5).Value = UserForm5.ComboBox1.Value .Cells(lRow, 6).Value = UserForm5.ComboBox5.Value .Cells(lRow, 7).Value = UserForm5.TextBox2.Value .Cells(lRow, 8).Value = UserForm5.TextBox5.Value .Cells(lRow, 9).Value = UserForm5.TextBox6.Value .Cells(lRow, 10).Value = UserForm5.TextBox4.Value .Cells(lRow, 11).Value = UserForm5.TextBox7.Value End If End With End Sub Sub Product2() Dim lRow As Long Dim ws As Worksheet Set ws = Worksheets("Inventory") lRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _ SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1 With ws If IsEmpty(UserForm5.ComboBox6.Value) Then Exit Sub Else .Cells(lRow, 1).Value = UserForm5.TextBox1.Value .Cells(lRow, 2).Value = UserForm5.ComboBox2.Value .Cells(lRow, 3).Value = UserForm5.ComboBox3.Value .Cells(lRow, 4).Value = UserForm5.ComboBox4.Value .Cells(lRow, 5).Value = UserForm5.ComboBox1.Value .Cells(lRow, 6).Value = UserForm5.ComboBox6.Value .Cells(lRow, 7).Value = UserForm5.TextBox9.Value .Cells(lRow, 8).Value = UserForm5.TextBox11.Value .Cells(lRow, 9).Value = UserForm5.TextBox12.Value .Cells(lRow, 10).Value = UserForm5.TextBox10.Value .Cells(lRow, 11).Value = UserForm5.TextBox8.Value End If End With End Sub 

Мне было интересно, что если мой combobox6 пуст, он не должен передавать данные для exel-листа.

Теперь я столкнулся, если combobox6 пуст (не выбрал никакого значения), он все равно скопирует все данные на лист excel.

Есть ли способ исправить это?

+ Изменить

 If IsEmpty(UserForm5.ComboBox5.Value) Then 

в

 If UserForm5.ComboBox5.Value = "" Then 

И сделайте такие же изменения в подмножестве Product2.

Если поле со списком «пусто», то проверка его значения даст вам пустую строку.

 Sub Product1() Dim lRow As Long Dim ws As Worksheet Set ws = Worksheets("Inventory") lRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _ SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1 With ws If UserForm5.ComboBox5.Value <> "" Then Exit Sub Else .Cells(lRow, 1).Value = UserForm5.TextBox1.Value .Cells(lRow, 2).Value = UserForm5.ComboBox2.Value .Cells(lRow, 3).Value = UserForm5.ComboBox3.Value .Cells(lRow, 4).Value = UserForm5.ComboBox4.Value .Cells(lRow, 5).Value = UserForm5.ComboBox1.Value .Cells(lRow, 6).Value = UserForm5.ComboBox5.Value .Cells(lRow, 7).Value = UserForm5.TextBox2.Value .Cells(lRow, 8).Value = UserForm5.TextBox5.Value .Cells(lRow, 9).Value = UserForm5.TextBox6.Value .Cells(lRow, 10).Value = UserForm5.TextBox4.Value .Cells(lRow, 11).Value = UserForm5.TextBox7.Value End If End With End Sub Sub Product2() Dim lRow As Long Dim ws As Worksheet Set ws = Worksheets("Inventory") lRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _ SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1 With ws If UserForm5.ComboBox6.Value <> "" Then Exit Sub Else .Cells(lRow, 1).Value = UserForm5.TextBox1.Value .Cells(lRow, 2).Value = UserForm5.ComboBox2.Value .Cells(lRow, 3).Value = UserForm5.ComboBox3.Value .Cells(lRow, 4).Value = UserForm5.ComboBox4.Value .Cells(lRow, 5).Value = UserForm5.ComboBox1.Value .Cells(lRow, 6).Value = UserForm5.ComboBox6.Value .Cells(lRow, 7).Value = UserForm5.TextBox9.Value .Cells(lRow, 8).Value = UserForm5.TextBox11.Value .Cells(lRow, 9).Value = UserForm5.TextBox12.Value .Cells(lRow, 10).Value = UserForm5.TextBox10.Value .Cells(lRow, 11).Value = UserForm5.TextBox8.Value End If End With End Sub 
Interesting Posts

Невозможно использовать свойство excel столбца

Запрос на замену пустых ячеек на пользовательский текст

Замените строку значением даты из строки выше

Загрузить файл excel из ресурсов / сборки в C #

Объединение двух подпрограмм без повторного выбора файла

Excel VlookUp советует находить значение в пределах диапазона и возвращать значение столбца рядом с ним

VBA Отправить Email Использование IBM Notes в цикле для каждого получателя в списке?

Как вы сокращаете (не копируете) события на другой рабочий лист, используя VBA программно?

Изменение ячеек всех листов

Должен ли я использовать Python вместо VBA?

ASP.NET Gridview для Excel

обновить существующий файл excel с помощью Outlook vba

Как я могу объединить формулу INDEX MATCH с одного листа, основанного на другом?

Метод «Выбор объекта» «Рабочий стол» не удалось – почему?

структурированная ссылка в excel vba: использование '#Headers ' в Range

Давайте будем гением компьютера.