记一次OfficeExcel操作经历

      项目落地之后,需要对帐号进行录入,但是有个问题就是如果通过web页面一个一个录入的话其实也很麻烦,很多历史数据很繁琐,而且以前很多的数据是以excel存储的。所以需要以excel的形式导入数据库。其他的数据没什么的事,因为职位在系统中需要,所以如何在excel中选择职位然后填上对应的职位id是一个问题。网上搜索了一翻,什么vlookup或者使用fx函数,但是都不是自己想要的效果,终于搜索到一个符合自己要求的,officeVBA编程,反正自己是写程序的不如自己动手。话不多说,接下来看过程。

首先是数据的大致格式
记一次OfficeExcel操作经历_第1张图片
唯一的一点要求是职位这一栏不能随便乱填,需要一些数据校验,但是校验只能从列表里面选择,填入的数据也是汉字,但是数据库里面的这一栏依照惯例是数字id表示。所以必须准备对应的数字填入。

这是我们的职位信息:
记一次OfficeExcel操作经历_第2张图片
数据校验很简单,如下所示选中我们admin这个sheeet的职位这一栏,依次点击:
记一次OfficeExcel操作经历_第3张图片

记一次OfficeExcel操作经历_第4张图片然后回到我们的数据表格,我们可以从我们的下拉框里面选择我们需要的数据:
记一次OfficeExcel操作经历_第5张图片
但是这不是最终需要的数据,所以我们需要继续改装.

右击我们的填写数据的表格,选择查看代码:
记一次OfficeExcel操作经历_第6张图片
我们会来到一个类似代码ide的页面,我们可以在这里进行我们自定义的操作:

记一次OfficeExcel操作经历_第7张图片
然后我们分析一下我们的操作,我们的职位表总共有20行和两列所以我们需要进行嵌套两次循环分别判断我们函数里面的参数里面的target的值和我们的职位汉字进行比较,如果一致则填充对应的值,否则不进行操作,注意这里的Sheet3等等是根据实际数据所在的sheet所决定的,比如的职位是在position的sheet里面,但是我这里不能写position而必须写excel物理名称才可以:

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim i, j As Integer
   For i = 1 To 20
     For j = 1 To 2
        If Target = Sheet3.Cells(i, 2) Then
           Target = Sheet3.Cells(i, 1)
        End If
     Next
   Next
End Sub

记一次OfficeExcel操作经历_第8张图片
然后我们再次进行操作发现可以实现我们的要求,但是还有个小问题就是当我们点击保存的时候,会提示以下警告:
记一次OfficeExcel操作经历_第9张图片
因为安全性的考虑所以excel不支持xlsx(07以后的版本)保存vba文件,所以我们需要xlsm后缀来存储我们的文件,点击选项的否,出现如下选择,会提示我们另存为:
记一次OfficeExcel操作经历_第10张图片
我们需要选择xlsm这一个选项,然后关闭源文件,打开我们的xlsm后缀的文件:
记一次OfficeExcel操作经历_第11张图片
可以看到我们的效果基本是出来了,当然这只是个人的一种方法,时间仓促,就粗鄙的实现了一下,谢谢参阅。

另外可能有的宏设置没有打开,可以用下面的方法打开(2013版):
记一次OfficeExcel操作经历_第12张图片

你可能感兴趣的:(成长历程,Excel)