Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA,所有匹配行必须返回列表框或组合框_Vba_Excel - Fatal编程技术网

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
,那么我不想运行的部分将以任何方式运行。