首页 > 范文大全 > 正文

Excel中快速录入数据

开篇:润墨网以专业的文秘视角,为您筛选了一篇Excel中快速录入数据范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘 要】在excel中如何修改VBA代码,来达到快速录入数据的目的。

【关键词】数据录入;代码;单元格;change事件

每一个学期初和学期末,都有许多数据需要采集和上报,这此数据在录入过程中不仅耗费了大量的时间,还很容易出错,如图1所示的学生情况信息表,在通常情况下,我们会逐条录入这些数据的,也有的同志会通过自定义单元格格式等技巧来提高自己的录入效率,但我想看过本人为您介绍的录入技巧后,您一定会大有收获。

图1 学生情况信息表

一、案例分析

不难发现在“编号”字段中(第一列),每位学生的编号前四位是相同的,即“2012”,所不同的是后面的班级和学号不同,如果我们在输入过程中前四位可以自动添加进去,那就方便多了。

对于学生姓名没有规律性,所以“姓名”列(第二列)中内容只能是一个一个录入了,没有办法“偷懒”。

在出生年月一列(第三列)中,如果我们只输入数字,就能显示年月日那样就会省事多了,如我输入“19941008”,按回车键后,系统就显是“1994年10月8日”。

在性别列(第四列)中,只有“男”或“女”的填充可能,如果我们能够按数字键1就显示“男”,按数字键2就显示“女”,那不是“太美”了嘛。

在“毕业学校”一列中(第五列)中,因为我们的学生来源只有五所中学,所以如果能做成下拉列表形式,我们只要在里面选择一下就可以了。

至于最后列“政治面貌”列,只有两种可能,即团员和非团员。所以做成性别列,类似就可以了。

二、实现方法

通过对上述分析,我们不难发现,数据中的1、3、4、6列中的数据都要是用户输入后由系统自动进行转换的,我们可以通过表对象中的Change事件编程来实现。数据的第5列是通过选中某个单元格对象再进行选择操作的,只需对工作表的SelectionChange来编写代码,操作步骤如下:按Alt+F11组合键打开VBA编辑器,双击窗口左侧的Sheet1对象,在其右侧的代码窗口中对工作表对象的Change事件和SelectionChange事件分别编写VBA代码。

Private Sub Worksheet_Change(ByVal

Target As Range)

On Error GoTo Error

‘设置陷阱

Select Case Target.Column

Case 1

Target.NumberFormatLocal="""2012"

"0000"

‘第一列自动套用格式在单元格数字前加2012

Case 3

Target.NumberFormatLocal=”0000””

年””00””月””00””日”””

‘第3列将输入的8位数更改为年月日格式

Case 4

If Target.Value=1 Then

Target.Value=”男”

Else

If Target.Value=2 Then

Target.Value=”女”

End If

End If

‘第4列输入1即显示为男,输入2显示为女

Case 6

If Target.Value=3 Then

Target.Value=”团员”

Else

If Target.Value=4 Then

Target.Value=”非团员”

End If

End If

‘第6列输入3即显示为团员,输入4显示为非团员

End Select

‘出现错误时退出程序

Error:

Exit Sub

End Sub

在Change事件中,主要是通过Select case/end select分支结构判断用户在哪一列中输入数据,在EXCEL中的A列为1,B列为2,以此类推,然后再转换为相应的分支结构语句中去执行相应的代码,完成后退出整个分支结构。

第五列即毕业学校列,我们通过下拉菜单来实现:

Private Sub worksheet_selectionchange(ByVal target As Range)

On Error GoTo Error

If target.Column=5 Then

Application.SendKeys"%{down}"

‘自动打开下拉菜单,设置第五列的数据有效性为序列填充

target.Validation.Add Type:=xlValidateList,Formula1:="市一中,市二中,省实验中学,市三中"

End if

Error:

Exit sub’

End sub

在Selectionchange事件中,首先通过判断语句判断当前选中是否为第三者列,即毕业学校列,如果是则自动打开下拉菜单,同时显示所选项目的列表,否则退当触发的事件。

以上事件在执行过程中如果出错则自动转到子程序error,退出当前的事件的执行。

三、数据录入测试

为了方便测试,建议大家将“按回车键后插入点的移动方向”改为“向右”,(单击工具菜单中的编辑选项卡进行设置)这样会更加符合我们平时的录入表格的习惯。

在“编号”列中输入学生编号的后四位按回车键,系统将会自动添加前四位2012。

在“出生年月日”列中直接输入8位数回车后,系统会自动在前四位后加“年”,中间两位后加“月”,最后加上“日”。

在“性别”列中,按数字键1,则显示为“男”,按数字键2,则显示为“女”。同样政治面貌一列中,按数字键3,显示为“团员”,按数字键4,显示为“非团员”。

在“毕业学校”一列中,中需单击单元格中的任一位置就可以看到自动弹出的下拉菜单,然后就可以从列表中选择相应的毕业学校。(不需要单击单元格右侧的下拉箭头按钮)

经过这样设计的表格,即使是初学Excel的朋友也会得心就手。如果要几个人协同输入一大批数据,不仅会做到格式上的高度统一,而且会节约很多的时间,同时又成倍的提高了工作效率,何乐而不会呢?在实际运用的过程中,大家可以根据自己的修改代码中相应的属性。需要注意的是,代码一旦编写完成后如果要添加或删除,请及时对代码中的列号进行相应的调整。

作者简介:刘金凤(1968—),女,延边大学经济管理专业毕业,高级讲师,现供职于延边职业技术学院计算机系。