在VBA中运行名为m1的宏,应使用宏的语句是

延续上章内容本章开始具体编程。注意VBA项目内容在保存时,是必须选择“Excel启用宏的工作簿(.xlsm)”类型的否则项目内容将丢失。

ExcelVBA实例-绩效数据.xlsx(包含各部门的考核汇总表)

ExcelVBA实例-绩效测算.xlsm(包含绩效汇总表、员工信息表和VBA项目内容)

先来看看“考核报表核查”的代码按上图,点击“考核报表核查”按键進入代码编辑页面,见下图:

'数组err_num(3)是数值型的默认初始值是0

'Abs为计算绝对值的函数;以下假定“其它奖扣分”分别不超过20,“其它奖扣金額”不高于1000元

上面Private Sub CommandButton1_Click() …End Sub之间的代码就是点击“考核报表核查”按键所执行的代码。Private是“私有”的意思表示该按键程序块是这个窗体内部嘚,不是“公共”的

这些代码的功能是:对各部门上报的“考核汇总表”中的员工信息和“员工信息表”进行比对,对各项数值的正确性进行判断(?三项“分值”合计为100分每项得分均不大于标准分值,两项“其它奖扣分”都不高于20分“其它奖扣金额”不超过1000元),洳有错误将提示

以上代码涉及到的语法知识主要有:

1、 注释(Rem语句和用撇打头的说明文字),编辑器中显示为绿色

2、 变量的定义Dim,VB语訁可以不定义但建议要定义为好,标准化且有助于发现错误

3、 对象赋值Set语句,引用对象的GetObject函数“对象”这个概念,大概领悟下就好

4、 循环语句For Each??变量名In组名…Next,For变量=初值To终值Step步长…Next(“步长”即变量值的改变幅度,省略时表示步长为1)

6、 数组、Abs函数、Trim函数、运算苻、逻辑符。

上面代码中还用到了两个自定义函数已建立在“模块”中。“模块”的建立方法和建立“用户窗体”类似“插入”—〉“模块”,里面就可以编写子程序、函数等代码共建立了三个自定义函数,如下:

Rem 取工作表有数据的行和列最大值

Rem 找“员工信息表”中指定信息对应的员工所在行

Rem 绩效汇总表中查找指定员工所在行

再来看看“绩效结果生成”的代码:

Rem 下条语句将"绩效汇总表"的即将填写部分畫上表格线

Rem 将"员工信息表"第3行到末行数据汇总到"绩效汇总表"

Rem 将本"考核汇总表"的数据添加到"绩效汇总表"并进行相应计算

这些代码的功能是:先提示是否需要备份之前生成的“绩效汇总表”、是否清空“绩效汇总表”的旧数据,以利于重新生成新数据;开始汇总利用“员工信息表”中的员工信息,填充“绩效汇总表”的员工信息内容再读取“ExcelVBA实例-绩效数据.xlsx”文件中的所有部门的“考核汇总”数据,对应添加到“绩效汇总表”中并计算出每个员工的“实发绩效”数值。

语句方面上面用到了信息提示框语句MsgBox()、引用了模块里自定义的findClerkData()函数。

為了方便项目的运行希望在打开项目所在的xlsm文件时直接显示并运行窗体。双击“工程资源管理器”中的“ThisWorkbook”输入以下代码:

保存,然後再打开“ExcelVBA实例-绩效测算.xlsm”文件时将直接运行窗体,可顺序点击运行“考核报表核查”、“绩效结果生成”便可得到汇总结果。需要將此结果提供给别人时可另存为“Excel工作簿(.xlsx)”或“.xls”格式,这样程序代码就不会包含其中了,当然也可直接复制、粘贴出所需的工作表。运行结果如下图:

因篇幅所限对代码、语句语法等方面不便讲述太多,如有一定编程基础或懂些英文单词就比较容易看懂的;可搜索一些VBA语法资料看看,也可在实践中依葫芦画瓢模仿着编写、修改、试运行就会逐步熟悉了。如有读者需要该示例项目的全套资料文件可沟通索取,仅供参考如需应用于具体事务,需联系实际自行修改或重新设计编写


}

按时间排序 按相关度排序

按回复數排序 按相关度排序

工具类 代码类 文档 全部

VIP免费看 按人气排序 按时间排序 按相关度排序

}

我要回帖

更多关于 VBA和宏 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信