Excel VBA,所有匹配行必须返回列表框或组合框
我正在尝试运行一个代码,目前正在给我的第一个匹配行,但我希望它去给所有的匹配行,而不仅仅是第一个。。。如果可能,还可以在组合框或列表框上显示匹配结果Excel VBA,所有匹配行必须返回列表框或组合框,vba,excel,Vba,Excel,我正在尝试运行一个代码,目前正在给我的第一个匹配行,但我希望它去给所有的匹配行,而不仅仅是第一个。。。如果可能,还可以在组合框或列表框上显示匹配结果 Private Sub CommandButton3_Click() Dim last, i As Integer Dim ref, refnovo, lote, armazem As String 'Sheets("1_Ref.paraProtocolar").Visible = True
Private Sub CommandButton3_Click()
Dim last, i As Integer
Dim ref, refnovo, lote, armazem As String
'Sheets("1_Ref.paraProtocolar").Visible = True
Sheets("analisegeral").Select
last = Application.ThisWorkbook.Worksheets("analisegeral").Range("H65536").End(xlUp).Row
If UserForm1.OptionButton1 = True And UserForm1.OptionButton2 = False Then
GoTo numnovo
ElseIf UserForm1.OptionButton1 = False And UserForm1.OptionButton2 = True Then
GoTo numvelho
End If
'NUMERO VELHO
numvelho:
For i = 2 To last ' i é a linha, ciclo para fazer leitura dos utilizadores ' 3 e 4 colunas do utilizador e password
armazem = Cells(i, 8)
ref = Cells(i, 9)
refnovo = Cells(i, 10)
lote = Cells(i, 14)
If TextBox1.Text = ref And ComboBox3 = armazem Then
'TextBox2.Text = lote
ComboBox4 = lote
GoTo fim
End If
Next i
If TextBox1.Text <> ref Then
TextBox2.Text = ""
MsgBox "Referência não encontrada!", vbInformation
GoTo fim
End If
'NÚMERO NOVO
numnovo:
For i = 2 To last ' i é a linha, ciclo para fazer leitura dos utilizadores ' 3 e 4 colunas do utilizador e password
armazem = Cells(i, 8)
ref = Cells(i, 9)
refnovo = Cells(i, 10)
lote = Cells(i, 14)
If TextBox1.Text = refnovo And ComboBox3 = armazem Then
ComboBox4 = lote
GoTo fim
End If
Next i
If TextBox1.Text <> refnovo Then
TextBox2.Text = ""
MsgBox "Referência não encontrada!", vbInformation
GoTo fim
End If
fim:
End Sub
Private子命令按钮3\u单击()
最后,我是整数
尺寸参考、参考Novo、lote、armazem作为字符串
“表(1参考准圆形”)。可见=真实
工作表(“analisegeral”)。选择
last=Application.ThisWorkbook.Worksheets(“analisegeral”).Range(“H65536”).End(xlUp).Row
如果UserForm1.OptionButton1=True,UserForm1.OptionButton2=False,则
去努姆诺沃
ElseIf UserForm1.OptionButton1=False,UserForm1.OptionButton2=True,则
新梅尔霍后藤酒店
如果结束
“维略号
努姆韦尔霍:
对于i=2,最后一个“iéa linha,ciclo para fazer leitura dos utilizadores”3 e 4 colunas do utilizador e密码
armazem=细胞(i,8)
ref=单元(i,9)
refnovo=单元(i,10)
lote=单元(i,14)
如果TextBox1.Text=ref和ComboBox3=armazem,则
'TextBox2.Text=lote
ComboBox4=lote
转到fim
如果结束
接下来我
如果TextBox1.Text ref,则
TextBox2.Text=“”
MsgBox“参考信息”,vbInformation
转到fim
如果结束
NÚMERO NOVO
努姆诺沃:
对于i=2,最后一个“iéa linha,ciclo para fazer leitura dos utilizadores”3 e 4 colunas do utilizador e密码
armazem=细胞(i,8)
ref=单元(i,9)
refnovo=单元(i,10)
lote=单元(i,14)
如果TextBox1.Text=refnovo和ComboBox3=armazem,则
ComboBox4=lote
转到fim
如果结束
接下来我
如果TextBox1.Text refnovo,则
TextBox2.Text=“”
MsgBox“参考信息”,vbInformation
转到fim
如果结束
职能指令手册:
端接头
如果有人知道或做过类似的事情,我将不胜感激
用户将插入一个引用,如果该引用有任何数字,则会返回该数字,但某些引用有多个关联的数字,每个引用最多可插入3个数字,因此用户将插入引用,如果有1个或多个数字,他必须能够从中进行选择。而不是使用
ComboBox4=lote
您应该使用ComboBox4.addItem lote
。此外,还应删除for loop
中的转到fim
,因为当您第一次满足的条件时,它将使您转到sub的末尾,因此只提供第一次匹配
您还应该在代码开头的某个位置使用ComboBox4=“”
或等效工具,以便在代码再次开始运行时重置组合框。注意Dim ref、refnovo、lote、armazem As String
仅将最后一个声明为String
。所有其他类型自动为变体
。您需要为每个变量指定一个类型:Dim ref As String、refnovo As String、lote As String、armazem As String
如果我删除GoTo fim
,那么我不想运行的部分将以任何方式运行。