excel如何用VBA实现搜索某些符合条件的行,并复制到同一个sheet中的指定位置?
图一图二图三点击图二中的查询按钮,弹出弹框,在弹框中输入硬件版本号,点击确定,excel会从图一中检索,并把符合条件在图二指定位置显示说明:图一中不止这几行,假定100行...
图一
图二
图三
点击图二中的查询按钮,弹出弹框,在弹框中输入硬件版本号,点击确定,excel会从图一中检索,并把符合条件在图二指定位置显示
说明:图一中不止这几行,假定100行
图二查询结果下面显示序列号(1,2,3,4,5...),型号下面显示型号
图三,如果输入为空,给出提示信息,如果点击取消,或者关闭按钮,关闭此对话框 展开
图二
图三
点击图二中的查询按钮,弹出弹框,在弹框中输入硬件版本号,点击确定,excel会从图一中检索,并把符合条件在图二指定位置显示
说明:图一中不止这几行,假定100行
图二查询结果下面显示序列号(1,2,3,4,5...),型号下面显示型号
图三,如果输入为空,给出提示信息,如果点击取消,或者关闭按钮,关闭此对话框 展开
1个回答
展开全部
Sub q()
Dim InStrs As String
InStrs = InputBox("请输入你需要查询的硬件版本号:", "硬件版本号&型号定位宏")
Dim Row, J, I As Integer, outStr() As String
Row = Sheet1.Cells(Sheet1.Rows.Count, 13).End(xlUp).Row
ReDim outStr(0)
With Sheet1
For I = 2 To Row
If .Cells(I, 14) = InStrs Then
ReDim Preserve outStr(UBound(outStr) + 1)
outStr(UBound(outStr)) = .Cells(I, 13)
End If
Next I
End With
With Sheet2
For J = 1 To UBound(outStr)
.Cells(J + 1, 4) = J
.Cells(J + 1, 5) = outStr(J)
Next J
End With
End Sub
追问
这个刚才验证了一下,只有一个对话框出来,输入数字,然后点确定,就没有任何反应,不过还是十分感谢
追答
是否是sheet1和sheet2以及列的位置,要根据你的实际情况修改的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询