关于我有一张EXCEL表,里面的列分别为”学号,姓名,语文,数学,英语”的成绩,现在,我需要用宏把学生的成绩一个一个打出来,要求是我输入学号后,就出来那个学生的成绩,我要用宏逐条成绩生成,不要告诉我用VLOOKUP,我现在只想用宏来解决这个问题,回答好的,100分送上,谢谢.的问题
定义一下Sheet2的Change()事件,利用高级筛选的原理,来提取符合条件的记录,代码如下,效果见附件:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
‘更改F3中的值时进行筛选
If Target。
Address = “$F$3” Then
Application。ScreenUpdating = False ‘关闭屏幕刷新
[A:D]。ClearContents ‘清除筛选结果区域的内容
‘以“F2:F3”为条件区域,从Sheet1中筛选符合条件的学号记录到Sheet2中
Sheets(“Sheet1”)。
[A:D]。AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[F2:F3], CopyToRange:=[A1]
‘调整显示格式,去除学号列
Range(“B1:D” & [B2]。
End(xlDown)。Row)。Copy [A1]
[D:D]。ClearContents
Application。ScreenUpdating = True ‘打开屏幕刷新
End If
End Sub
。