excel - 如何使用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 解决方案将产生:
解决方案
您正在将它写入同一行 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
推荐阅读
- r - 使用 str_detect 查找常量字符串和字符串的可选结尾
- c++ - 我们如何为 C++ 无序集定制我们自己的哈希函数以获得特定的顺序?
- node.js - AWS DynamoD Table 的 StreamSpecification 属性有什么用途?
- android - Dagger 在构建期间“无法访问 SomeComponent”
- javascript - POST 方法在客户端和服务器中都返回空对象
- python - 意外类型“QVariant”
- c# - 如何在域驱动设计中对用户实体中的个人资料图片类型的字段进行建模?
- numbers - 查找第一个和最后一个数字
- python - soup.find 有时只返回“none”?
- amazon-web-services - 使用相同的 API ID 销毁并重新部署私有 AWS API Gateway 实例?还是另一种解决方案?