|
楼主 |
发表于 2012-11-1 22:51
|
显示全部楼层
hwc2ycy 发表于 2012-11-1 21:51
再请教下朋友:
其实下面这句也可以不要是吧
Set sth = Sheets("数据源")
直接改成以下,请教下,改成以下,和原来的有什么不同吗,会不会影响速度。
Sub 查询() '数据按行遍历
Sheets("查询").Range("a2:n65536").Clear '首先清除Sheets("查询")工作表中上回查询的历史数据
n = 2 'n指行数,因为查询表内第一行是标题,所以从第2行开始存放数据
For i = 2 To Sheets("数据源").Range("b65536").End(xlUp).Row '从Sheets("数据源")工作表的第2行开始查询
If Sheets("数据源").Cells(i, "L") > 20 And Sheets("数据源").Cells(i, "N") > 15 And Sheets("数据源").Cells(i, "h") = "男" And Sheets("数据源").Cells(i, "d") = "中级" Then ''设置查询条件,L列大于20,N列大于15,H列等于男,D列等于中级(这里可以继续增加查询条件)
Rows(n) = Sheets("数据源").Rows(i).Value '如果符合条件,则把数据源的内的第I行数据复制到查询表的n行
Cells(n, "a") = n - 1 'a表示编号所在列在a列,数据是从第2行开始,所以编号就为n-1
n = n + 1 'n+1,n行已写入数据,n号往下移一行
End If
Next i
With Sheets("查询").Range("a2:n" & Range("b65536").End(xlUp).Row) '设置指定工作表的指定区域
.Borders.LineStyle = 1 '加表线
.Font.Size = 12 '设置字号
.HorizontalAlignment = xlCenter '文字水平居中
.VerticalAlignment = xlCenter '文字垂直居中
.WrapText = True '自动换行
End With
End Sub
|
|