我有一个使用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解决方案将产生:
您正在将其写入同一行,即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