Есть ли возможность создать пользовательскую форму, которая может использовать несколько переменных для запуска поиска строки в таблице Excel - PullRequest
0 голосов
/ 15 апреля 2019

Я создаю интерфейс Userform для своей команды, мы хотим сделать сбор данных унифицированным и более простым, одна из вещей, которую мы хотим устранить дублирующиеся записи, запустив поиск, в настоящее время я ищу только номер счета, Что работает, однако было запрошено, чтобы мы включили несколько переменных, код, который я имею в следующем Итак, мой интерфейс выглядел так: enter image description here

и мой код для поиска по счету

Public Sub Search1()
row_Number = 0
Do
DoEvents
row_Number = row_Number + 1
Item_in_Review1 = Sheets("Source").Range("E" & row_Number)
If Item_in_Review = Userform1.TextBox1.Text Then

> /*send relevant data to Userform3*/

UserForm3.TextBox5 = Sheets("Source").Range("B" & row_Number)
UserForm3.TextBox1 = Sheets("Source").Range("C" & row_Number)
UserForm3.TextBox2 = Sheets("Source").Range("D" & row_Number)
UserForm3.TextBox3 = Sheets("Source").Range("E" & row_Number)
UserForm3.TextBox6 = Sheets("Source").Range("F" & row_Number)
UserForm3.TextBox7 = Sheets("Source").Range("G" & row_Number)
UserForm3.TextBox8 = Sheets("Source").Range("H" & row_Number)
UserForm3.TextBox9 = Sheets("Source").Range("I" & row_Number)
UserForm3.TextBox4 = Sheets("Source").Range("J" & row_Number)
End If

Loop Until Item_in_Review = "" 

End Sub

и это работает, поэтому я решил попробовать добавить и другие параметры, например:

Public Sub Search1()
row_Number = 0
Do
DoEvents
row_Number = row_Number + 1
Item_in_Review1 = Sheets("Source").Range("E" & row_Number)
Item_in_Review2 = Sheets("Source").Range("B" & row_Number)
Item_in_Review3 = Sheets("Source").Range("I" & row_Number)
If Item_in_Review = Userform1.TextBox1.Text And Item_in_Review2 = Userform1.ComboBox1.Text And Item_in_Review3 = Userform1.ComboBox2.Text Then

UserForm3.TextBox5 = Sheets("Source").Range("B" & row_Number)
UserForm3.TextBox1 = Sheets("Source").Range("C" & row_Number)
UserForm3.TextBox2 = Sheets("Source").Range("D" & row_Number)
UserForm3.TextBox3 = Sheets("Source").Range("E" & row_Number)
UserForm3.TextBox6 = Sheets("Source").Range("F" & row_Number)
UserForm3.TextBox7 = Sheets("Source").Range("G" & row_Number)
UserForm3.TextBox8 = Sheets("Source").Range("H" & row_Number)
UserForm3.TextBox9 = Sheets("Source").Range("I" & row_Number)
UserForm3.TextBox4 = Sheets("Source").Range("J" & row_Number)
End If

Loop Until Item_in_Review = "" And Item_in_Review2 = "" And Item_in_Review3 = ""

End Sub


Но теперь я получаю ошибку несоответствия, где я иду не так? Идея состоит в том, что если Userform1.TextBox1.Text + Userform1.ComboBox1.Text + Userform1.ComboBox2.Text = Range B, E, I соответственно, то он заполнит следующую пользовательскую форму всеми соответствующими данными. Кто-нибудь может помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...