excel中利用宏进行数据录入查询 (excel宏操作)

前面一节,我们学习了如何用宏功能实现点击按钮跳转到指定的工作表,返回按钮的操作也是一样的,有同学还提到了要隐藏工作表的问题。

excel宏操作,excel启用宏禁用宏

通过文件,选项,高级,此工作簿的显示选项里可以设置不显示工作表的标签,甚至连滚动条都可以不显示,这样看起来是不是就像某些常见的系统界面了。

今天我们来学习下如何用宏来实现查询功能。

下面是一份成绩表,有各个班级学生,语文、数学、英语三门的成绩。

excel宏操作,excel启用宏禁用宏

我们希望通过下面的界面,输入学号点击查询按钮来查询学生的成绩。

excel宏操作,excel启用宏禁用宏

具体的操作步骤如下:

excel宏操作,excel启用宏禁用宏

1、插入按钮,命名为查询,

2、右键点击按钮,指定宏,录制宏,

接下来就开始录制宏了。

3、选中成绩查询表B6:F6区域,清除内容,(你可以跳过此步,录制宏好后测试下会发生什么)

4、点击成绩表,选择A1单元格,ctrl+A,全选数据区域,

5、点击高级筛选,筛选区域已经自动填进去了,我们只需要选定条件区域,成绩查询表B2:B3,

6、确定,

7、经过第六步,数据区域已经筛选出来了,选择成绩表中C1单元格,ctrl+shift+⬇,alt+;,复制,成绩查询表B6单元格,粘贴,

8、选择成绩表中E1单元格,ctrl+shift+⬇,ctrl+shift+➡,alt+;,复制,成绩查询表C6单元格,粘贴,

7、8两步的操作非常关键。

9、成绩查询表里选择第六行,删除,

10、成绩表里,清除筛选,随便选择一个单元格点击下,

11、返回成绩查询表。

停止录制,试试效果吧!尽管比较慢,但对于一个完全不懂代码又想学习VBA的小伙伴来说,值得练练手。

上面有些步骤,有人可能不知道为啥要那么操作,我是在错误中总结出来的步骤,只要不断的试,你可以按自己步骤试试,然后在对比下就知道为什么了。

下面我们打开VBE窗口看看代码:

Sub 成绩查询()

Range("B6:F6").Select '选择单元格区域B6:F6

Selection.ClearContents '清空内容

Sheets("成绩表").Select '选择成绩表

Range("A1:H109").Select '选择数据区域

Application.CutCopyMode = False

Application.CutCopyMode = False

Application.CutCopyMode = False

Range("A1:H109").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _

Sheets("成绩查询").Range("B2:B3"), Unique:=False '根据条件高级筛选

Range("C1").Select '选择C1单元格

Range(Selection, Selection.End(xlDown)).Select '向下选择到最后一个数据

Selection.SpecialCells(xlCellTypeVisible).Select '选择可见单元格

Selection.Copy '复制

Sheets("成绩查询").Select '选择成绩查询表

Range("B6").Select '选择B6单元格

ActiveSheet.Paste '粘贴

Sheets("成绩表").Select '选择成绩表

Range("E1").Select '选择E1单元格

Range(Selection, Selection.End(xlToRight)).Select '向右选择到最后一个数据

Range(Selection, Selection.End(xlDown)).Select '向下选择到最后一个数据

Selection.SpecialCells(xlCellTypeVisible).Select '选择可见单元格

Application.CutCopyMode = False

Selection.Copy '复制

Sheets("成绩查询").Select

Range("C6").Select

ActiveSheet.Paste

Rows("6:6").Select

Application.CutCopyMode = False

Selection.Delete Shift:=xlUp '删除第六行

Range("G1").Select

Sheets("成绩表").Select

ActiveSheet.ShowAllData '清除筛选

Range("I1").Select

Sheets("成绩查询").Select

Range("H1").Select

End Sub

代码后面的汉子是我做的注释,想学习代码但又不知道如何操作的的同学,通过录制宏,研究代码的办法学习,我觉得相当不错。

先对代码有个大概了解,比如清除内容、清除筛选、选择单元格、选择单元格区域、向下选择到最后一个数据,向右选择对最后一个数据之类的表达,以后看书时就会很容易明白了。

转自: 米宏Office