首页 > 解决方案 > 如何使用VBA显示excel中的多个值

问题描述

我有一个使用 VBA 的 excel 文件来搜索我的数据表并显示其上显示的数据。问题是它只会返回一个值。我不明白为什么它只会返回一个值。我需要它来显示所有具有特定 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 解决方案将产生:

在此处输入图像描述

标签: excelvbaworksheet

解决方案


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

您可以为 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

推荐阅读