VBA EXCEL 查找并输出结果

来源:百度知道 编辑:UC知道 时间:2024/05/23 20:27:55
我想学一下VBA,所以请别告诉我不必用VBA。
我想实现这样功能,SHEET2存有数据:

编号 学号 姓名 性别 年龄 分数
1 2020106105 张三 女 20 85
2 2020306148 李四 男 19 86
3 2020306204 王五 女 19 93
4 2020306215 赵六 男 20 90
5 2020306220 刘二 女 20 77

我在SHEET1的随便某一个单元格里如“H5”输入查询条件,如“女”,点击预设按钮,则将查到的结果,应该是三行数据,添加到SHEET1的从A2开始的单元格里,但是我没有弄对,用了NEXT语句,最好只输出一个结果,也就是最后一个性别为“女”的即第五条数据。

Private Sub CommandButton1_Click()

For i = 2 To 50
For j = 1 To 6
XX = Sheet2.Cells(i, j).Value

If XX = Sheet1.Range("h5") Then
Sheet2.Cells(i, 1).Copy Sheet1.Range("a2")
Sheet2.Cells(i, 2).Copy Sheet1.Range("B2")
Sheet2.Cells(i, 3).Copy Sheet1.Range("C2")
Sheet2.Cells(i, 4).Copy Sheet1.Range("D2")
Sheet2.Cells(i, 5).Copy Sheet1.Range("E2")
Sheet2.Cells(i, 6).Copy Sheet1.Range("F2")
End If

Next j
Next i

End Sub

请大侠们不吝赐教。另外,中间COPY数据那一段,肯定是极笨的办法,不知该

按你的要求,从最后一条记录向前检索,代码如下:
Private Sub CommandButton1_Click()
Sheet2.Activate
num = Range("a65536").End(xlUp).Row '检索最大记录数
For i = num To 2 Step -1
For j = 1 To 6
If Cells(i, j) = Sheet1.Range("h5") Then
Range(Cells(i, 1), Cells(i, 6)).Copy '复制找到的记录区域
Sheet1.Range("A2").PasteSpecial '粘贴到sheet1的第二行
GoTo ppp
End If
Next j
Next i
ppp:
End Sub

Private Sub CommandButton1_Click()
j=1
For i = 2 To 50

If Sheet2.Cells(i, j)= Sheet1.Range("h5") Then
j=j+1
Sheet1.cells(j,1) =Sheet2.Cells(i, 1)
Sheet1.cells(j,2) =Sheet2.Cells(i, 2)
Sheet1.Sheet1.cells(j,3)=Sheet2.Cells(i, 3)
Sheet1.Sheet1.cells(j,4) =Sheet2.Cells(i, 4)
Sheet1.Sheet1.cells(j,5) =Sheet2.Cells(i, 5)
Sheet1.Sheet1.cells(j,6) =Sheet2.Cells(i, 6)
End If
Next i

End Sub

Sheet2.Cells(i, 1).Copy Sheet1.R