Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4569|回复: 4

[已解决]如何用VBA设计班级成绩查询系统

[复制链接]
发表于 2017-1-22 20:49 | 显示全部楼层 |阅读模式
本帖最后由 jinzikun 于 2017-1-23 14:16 编辑

各位大师,我手头有个年级成绩汇总表,想设计一个班级成绩查询系统,只要输入班级名,指定区域就会显示该班级的成绩表,具体代码不知如何写,请多多帮助或指教。
最佳答案
2017-1-23 13:31
  1. Sub 查询()
  2.     Dim FindRng As Range
  3.     bj = [c2] & "班"
  4.     nj = Left(bj, 1)      '年级名
  5.     sname = Mid("一二三四五六", nj, 1) & "年级汇总表"       '通过年级名确定工作表名
  6.     [a4:m100].ClearContents
  7.     With Sheets(sname)
  8.         Set FindRng = .UsedRange.Find(bj)
  9.         If FindRng Is Nothing Then
  10.             MsgBox sname & "中查无此班": Exit Sub
  11.         Else
  12.             r1 = FindRng.Row
  13.             r2 = .Cells(r1 + 1, 2).End(xlDown).Row
  14.             .Cells(r1 + 1, 1).Resize(r2 - r1, 13).Copy Sheets(1).[a4]
  15.         End If
  16.     End With
  17. End Sub
复制代码
1.PNG
2.PNG

成绩查询.rar

20.73 KB, 下载次数: 47

发表于 2017-1-23 09:11 | 显示全部楼层
  1. Sub 查询()
  2.     Dim FindRng As Range
  3.     bj = [c2] & "班"
  4.     [a4:m100].ClearContents
  5.     With Sheets(2)
  6.         Set FindRng = .UsedRange.Find(bj)
  7.         If FindRng Is Nothing Then
  8.             MsgBox "查无此班": Exit Sub
  9.         Else
  10.             r1 = FindRng.Row
  11.             r2 = .Cells(r1 + 1, 2).End(xlDown).Row
  12.             .Cells(r1 + 1, 1).Resize(r2 - r1, 13).Copy Sheets(1).[a4]
  13.         End If
  14.     End With
  15. End Sub
复制代码

成绩查询.rar

215.23 KB, 下载次数: 62

回复

使用道具 举报

 楼主| 发表于 2017-1-23 12:20 | 显示全部楼层

非常感谢大师的帮助,这么快有了答案,而且代码简洁,运行流畅。学生还想知道,如果我还有其他年级的成绩在不同的工作表里,怎么修改代码,请大师帮忙修改一下,万分感谢!

成绩查询(修改).rar

232.69 KB, 下载次数: 74

回复

使用道具 举报

发表于 2017-1-23 13:31 | 显示全部楼层    本楼为最佳答案   
  1. Sub 查询()
  2.     Dim FindRng As Range
  3.     bj = [c2] & "班"
  4.     nj = Left(bj, 1)      '年级名
  5.     sname = Mid("一二三四五六", nj, 1) & "年级汇总表"       '通过年级名确定工作表名
  6.     [a4:m100].ClearContents
  7.     With Sheets(sname)
  8.         Set FindRng = .UsedRange.Find(bj)
  9.         If FindRng Is Nothing Then
  10.             MsgBox sname & "中查无此班": Exit Sub
  11.         Else
  12.             r1 = FindRng.Row
  13.             r2 = .Cells(r1 + 1, 2).End(xlDown).Row
  14.             .Cells(r1 + 1, 1).Resize(r2 - r1, 13).Copy Sheets(1).[a4]
  15.         End If
  16.     End With
  17. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2017-1-23 14:18 | 显示全部楼层

再次感谢grf1973大师,问题已解决,输入非法字符查询而出现的错误警告,我可以用数据的有效性加以提醒或限制,谢谢!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-24 13:28 , Processed in 0.285996 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表