请问高手,如何在excel表里用宏实现下面的功能。

请问高手,如何在excel表里用宏实现下面的功能。在表2点击“查询”按钮,变把表1符合查询条件的单位统计出来,按序显示。... 请问高手,如何在excel表里用宏实现下面的功能。在表2点击“查询”按钮,变把表1符合查询条件的单位统计出来,按序显示。 展开
 我来答
柔软的Bp
科技发烧友

2018-04-22 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:3万
采纳率:66%
帮助的人:8975万
展开全部
代码复制到 第2图,假设表名为 Sheet2
Sub 查询()
Range("C4:E500") = ""
Dim i%
Application.ScreenUpdating = False
For i = 5 To Sheets(1).Range("B65536").End(xlUp).Row
Sheets(1).Select
If Sheets(1).Cells(i, "b") = [C2] Then
N = N + 1
Sheets(2).Cells(N + 3, "c") = Sheets(1).Cells(i, "b")
Sheets(2).Cells(N + 3, "D") = Sheets(1).Cells(i, "C")
Sheets(2).Cells(N + 3, "E") = Sheets(1).Cells(i, "D")
Sheets(2).Select

End If

Next
Application.ScreenUpdating = True
End Sub
第1图表名为 Sheet1
如果数据多,对速度有要求,就用VBA数组
更多追问追答
追问
就是数据比较多
追答
Sub 查询()
T = Timer
Range("C4:E500") = ""
Dim i%
Application.ScreenUpdating = False
For i = 5 To Sheets(1).Range("B65536").End(xlUp).Row
Sheets(1).Select
If Sheets(1).Cells(i, "b") = [C2] Then
N = N + 1
Sheets(2).Cells(N + 3, "c") = Sheets(1).Cells(i, "b")
Sheets(2).Cells(N + 3, "D") = Sheets(1).Cells(i, "C")
Sheets(2).Cells(N + 3, "E") = Sheets(1).Cells(i, "D")
Sheets(2).Select

End If

Next
Application.ScreenUpdating = True
MsgBox Format(Timer - T, "0.000")
End Sub
你先测试下这个代码,看下速度是否快?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式