请问高手,如何在excel表里用宏实现下面的功能。
请问高手,如何在excel表里用宏实现下面的功能。在表2点击“查询”按钮,变把表1符合查询条件的单位统计出来,按序显示。...
请问高手,如何在excel表里用宏实现下面的功能。在表2点击“查询”按钮,变把表1符合查询条件的单位统计出来,按序显示。
展开
1个回答
展开全部
代码复制到 第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 查询()
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
你先测试下这个代码,看下速度是否快?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询