如何使用 VBA 显示 excel 中的多个值

How to show multiple values from excel using VBA

我有一个 excel 文件,该文件使用 VBA 来搜索我的数据 sheet 并显示其中显示的数据。 问题是它只会 return 一个值。 我不明白为什么它只会 return 一个值。我需要它来显示具有特定 ID 值的所有行。

Sub Searchdata()
    Dim Lastrow As Long
    Dim count As Integer


    Lastrow = Sheets("Data").Cells(Rows.count, 1).End(xlUp).Row

    For X = 2 To Lastrow

        If Sheets("Data").Cells(X, 1) = Sheet3.Range("B3") Then
            Sheet3.Range("A11") = Sheets("Data").Cells(X, 1)
            Sheet3.Range("B11") = Sheets("Data").Cells(X, 2)
            Sheet3.Range("C11") = Sheets("Data").Cells(X, 3) & " " & Sheets("data").Cells(X, 4) _
                                & " " & Sheets("data").Cells(X, 5) & " " & Sheets("Data").Cells(X, 6)
            Sheet3.Range("D11") = Sheets("Data").Cells(X, 7)
        End If
    Next X

End Sub




Sub PrintOut()
    Sheet3.Range("A1:D12").PrintPreview
    Sheet3.Range("A1:D12").PrintOut
End Sub

此代码将产生: 以下结果

@Naveen 解决方案将产生:

您正在将它写入同一行,即 11,这就是它在被覆盖时返回单行的原因。

您可以为 Sheet3 再创建一个变量 Y,然后在 IF 条件下递增它:

Sub Searchdata()
Dim Lastrow As Long
Dim count As Integer
Lastrow = Sheets("Data").Cells(Rows.count, 1).End(xlUp).Row
Y=11
For X = 2 To Lastrow
    If Sheets("Data").Cells(X, 1) = Sheet3.Range("B3") Then
       Sheet3.Cells(Y,"A") = Sheets("Data").Cells(X, 1)
       Sheet3.Cells(Y,"B") = Sheets("Data").Cells(X, 2)
       Sheet3.Cells(Y,"C") = Sheets("Data").Cells(X, 3) & " " & Sheets("data").Cells(X, 4) _
                                & " " & Sheets("data").Cells(X, 5) & " " & Sheets("Data").Cells(X, 6)
       Sheet3.Cells(Y,"D") = Sheets("Data").Cells(X, 7)
       Y = Y + 1
    End IF
Next X
End Sub