Excel中快速录入数据

来源 :网友世界 | 被引量 : 0次 | 上传用户:LittleMeteor
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】在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—),女,延边大学经济管理专业毕业,高级讲师,现供职于延边职业技术学院计算机系。
其他文献
目的探究采用中药葛根芩连汤治疗糖尿病患者的临床效果。方法于郑州人民医院接受治疗的糖尿病患者中随机抽取80例作为此次研究对象,按治疗方式的不同对其进行分组,其中,采用
Geomagnetic storm is a kind of severe disturbance that lasts for more than ten hours to several tens of hours in the entire Earth’s magnetosphere. This paper u
Floodwaters from the Assiniboine River are typically diverted to Lake Manitoba and then Lake St. Martin to save the City of Winnipeg and Portage la Prairie from
目的总结并归纳彩超引导下经皮无水酒精硬化治疗对不同大小肝囊肿患者不良反应总发生率的影响。方法本文在清丰县人民医院所收肝囊肿患者中随机挑选出40例患者,时间选取为201
目的探讨Dupuvtren骨折术后应用优质护理的临床价值。方法选取2011年10月至2013年5月收治的行Dupuvtren骨折手术患者40例,采用完全随机分组方式将其均分为观察组和对照组,对
目的探讨极致细节护理结合标准化沟通护理对孕产妇护理满意度和心理情绪的应用。方法将郑州市第七人民医院2018年3月-2019年1月间收治的146例孕产妇随机分为两组,每组73例,对
Alternative Land Use Services (ALUS) is an incentive-based program established in Canada to pay farmers for their voluntary delivery of ecosystem services (ES).
目的研究临床护理路径对前列腺电切术患者膀胱痉挛及并发症的影响。方法选择2018年9月-2019年9月南阳市中心医院收治的100例前列腺电切术患者作为研究对象,采用随机数表法分
目的探讨循证护理对慢性阻塞性肺疾病(以下简称慢阻肺)患者的干预效果。方法选择南阳市中心医院2017年12月-2018年12月收治的慢阻肺患者140例,采用随机数表法分为两组,各70例
现代工业生产中,电动机的应用非常广泛,但是在生产当中电动机因缺相运行而造成烧毁的事故在生产中占有很大的比例,怎样减少这些问题的出现,全面提高电动机的使用效率,是一个