【Excel VBA】2018-09-28 关键字查询信息

案例

案例来源:Excel和Access (微信公众号)点击 - 查看原文

做一个简单的查询系统:在这个查询系统中,利用姓名来作为查找的条件,来查找姓名信息的所有结果。

附件:点击查看-百度云
提取密码:0anq

1、源数据
可以直接复制代码进Excel,生成案例数据。

Sub 案例源数据()
Cells(1, 1) = "姓名"
Cells(1, 2) = "年级"
Cells(1, 3) = "语文"
Cells(1, 4) = "数学"
Cells(1, 5) = "英语"

'录入学生姓名
Cells(2, 1) = "张三丰"
Cells(3, 1) = "风清杨"
Cells(4, 1) = "张九明"
Cells(5, 1) = "陈明"
Cells(6, 1) = "古月生"
Cells(7, 1) = "周杰"
Cells(8, 1) = "刘万丰"
Cells(9, 1) = "曾清杰"
Cells(10, 1) = "程杰芳"
Cells(11, 1) = "辛小龙"
Cells(12, 1) = "张天"
Cells(13, 1) = "强强"
Cells(14, 1) = "林明荣"
Cells(15, 1) = "佟明小"

'录入年级
Range("b2:b5") = "1年级"
Range("b6:b11") = "2年级"
Range("b12:b15") = "3年级"

'录入语文成绩
Cells(2, 3) = 98
Cells(3, 3) = 91
Cells(4, 3) = 74
Cells(5, 3) = 71
Cells(6, 3) = 59
Cells(7, 3) = 86
Cells(8, 3) = 78
Cells(9, 3) = 83
Cells(10, 3) = 81
Cells(11, 3) = 70
Cells(12, 3) = 82
Cells(13, 3) = 76
Cells(14, 3) = 68
Cells(15, 3) = 86

'录入数学成绩
Cells(2, 4) = 50
Cells(3, 4) = 88
Cells(4, 4) = 92
Cells(5, 4) = 67
Cells(6, 4) = 50
Cells(7, 4) = 74
Cells(8, 4) = 92
Cells(9, 4) = 62
Cells(10, 4) = 92
Cells(11, 4) = 80
Cells(12, 4) = 61
Cells(13, 4) = 60
Cells(14, 4) = 81
Cells(15, 4) = 95

'录入英语成绩
Cells(2, 5) = 94
Cells(3, 5) = 90
Cells(4, 5) = 61
Cells(5, 5) = 65
Cells(6, 5) = 81
Cells(7, 5) = 80
Cells(8, 5) = 60
Cells(9, 5) = 95
Cells(10, 5) = 85
Cells(11, 5) = 83
Cells(12, 5) = 62
Cells(13, 5) = 88
Cells(14, 5) = 79
Cells(15, 5) = 69

'录入查询界面
Range("g1") = "请输入姓名:"
Range("i1:k1").Merge
Range("i1") = "(支持通配符查找,?单个,*多个)"
Range("a1:e1").Copy Range("g2")

'格式调整
Range("a1:e15").Borders.LineStyle = 1 '画边框
Range("g1:k2").Borders.LineStyle = 1
Range("a1:e1").Interior.ColorIndex = 6 '背景色
Range("g2:k2,h1").Interior.ColorIndex = 53
Range("g2:k2,h1").Font.ColorIndex = 2 '字体颜色

End Sub

查询

查询方法一

Sub 查询方法一()
'ravlee
Dim i, n As Integer
n = 2000

Range("g3:k" & n).Clear '查询前,清除已有信息
If Range("h1") = "" Then Exit Sub '判断查询关键字,是否为空

For i = 2 To Range("a" & n).End(xlUp).Row
    If Range("a" & i) Like Range("h1") Then
        Range("a" & i & ":" & "e" & i).Copy Range("g" & Range("g" & n).End(xlUp).Row + 1)
    End If
Next
'定义循环次数i和可查询范围N
'使用End(xlup).row定位实际查找区域
'通过if判断姓名是否类似,类似情况下将学生信息复制到G行开始的单元格区域,通过G列End(xlUp).row定位最后一行
End Sub

查询方法二

Sub 查询方法二()
'ravlee
Dim m, k, n As Integer
Dim Rng As Range
n = 2000

Range("g3:K" & n).Clear
For Each Rng In Range("a2:a" & Range("a" & n).End(xlUp).Row)
    m = m + 1
    If Rng Like Range("h1") Then
        k = k + 1
        Range("a" & m + 1 & ":e" & m + 1).Copy Destination:=Range("g" & k + 2)
    End If
Next
'设定大循环,Rng在区域A列的姓名内。
'设定m=m+1,其初始默认值为1;然后在实际引用时+1,实际为Range("a2:e2")
'设定k=k+1,其初始默认值为1;然后在实际引用时+2,实际为Range("g3")
'通过if判断姓名是否类似,并分隔m=m+1和k=k+1。K在if里,只有姓名类似时,循环才会增加值。而m不管名字是否类似,均会增加值
End Sub

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容