Excel 2010 VBA 入门 044 用VBA进行四舍五入
目录
示例
实现代码
VBA的Round函数
VBA的Round函数与工作表Round函数的区别
在Office软件中使用自定义函数替代VBA的Round函数
示例
在实际工作中,经常需要对数据进行四舍五入的计算。如图所示,该表为某公司销售部门奖金计算表格,如何通过VBA对该表D列进行四舍五入计算,并保留两位小数?
人员 | 奖金标准 | 销售额完成率 | 奖金 | VBA四舍五入结果 | 工作表函数 |
程建华 | 2090 | 1.03606 | 2165.365 | ||
李国敏 | 2070 | 0.961408 | 1990.115 | ||
袁志刚 | 2970 | 0.79698 | 2367.031 | ||
周汉林 | 2930 | 0.64096 | 1878.014 | ||
骈永富 | 2910 | 0.75519 | 2197.603 | ||
孙玉梅 | 2980 | 0.621203 | 1851.186 | ||
陈亚菁 | 2710 | 0.84626 | 2293.365 | ||
康小芸 | 2500 | 1.054302 | 2635.755 | ||
刘晨 | 2510 | 0.976329 | 2450.585 | ||
齐光 | 2760 | 0.619361 | 1709.435 | ||
于健惠 | 2220 | 0.678101 | 1505.385 | ||
王文群 | 2040 | 0.78886 | 1609.274 |
实现代码
Option ExplicitSub 四舍五入计算()Dim RowN As LongFor RowN = 2 To Cells(Rows.Count, "A").End(xlUp).Row'使用VBA函数Cells(RowN, "E").Value = Round(Cells(RowN, "D").Value, 2)'使用工作表函数Cells(RowN, "F").Value = WorksheetFunction.Round(Cells(RowN, "D"), 2)NextEnd Sub
VBA的Round函数
VBA的Round函数是用来进行四舍五入运算的,其语法为
Round(expression[,numdecimalplaces])
其中,参数expression为所要进行四舍五入的数值,整型参数要保留的小数点位数。numdecimalplaces表示所使用VBA函数可直接输入函数名进行使用,而工作表函数之前必须加上WorksheetFunction 。
VBA的Round函数与工作表Round函数的区别
VBA的Round函数与工作表Round函数均为四舍五入函数,两个函数的语法相同,但有着很大的不同,其主要区别如下。
①VBA中Round函数的第2个参数可省略,当省略时,表示返回整数。工作表Round函数的第2个参数不可省略。
②VBA中Round函数的第2个参数不可以为负数。工作表Round函数的第2个参数可以为负数,当为负数时,表示向小数点左边取保留位数,如以下表达式将返回120。
WorksheetFunction.Round( 123,-1)
③工作表Round函数进行四舍五入时,将查看保留位数的后一位数字,该数字大于或等于5时,则进1,反之不进位。而VBA的Round函数规则如下:
- ·当保留位数的后一位数字大于5时,则进位。
- ·当保留位数的后一位数字小于5时,则不进位。
- ·当保留位数的后一位数字为5时,若该位之后存在任何大于0的数字,则进位。
- ·当保留位数的后一位数字为5时,若该位之后的数字为0且保留位的数字为奇数时,则进位。
- ·当保留位数的后一位数字为5时,若该位之后的数字为0且保留位的数字为偶数时,则不进位。
运用上述规则,若计算表达式Round (Number,2)的值时,随着Number的数值不同,结果如表所示。
表VBA Round函数示例
Number的值 |
结 果 |
123.456 |
123.46 |
123.454 |
123.45 |
123.455 |
123.46 |
123.445 |
123.44 |
123.445001 |
123.45 |
123.445000 |
123.44 |
由于VBA的Round函数和工作表函数Round的规则不同,则本例计算结果会导致细微的不同。大多数情况下,使用工作表函数Round能得到开发者所预期的结果。
在Office软件中使用自定义函数替代VBA的Round函数
在Office其他软件的VBA中,由于仅提供了VBA的Round函数,从而给开发者造成一些困扰。一般地,可以使用自定义函数编写一个MyRound函数来替代Round函数,参考代码如下。
Function 自定义四舍五入函数(ByVal number As Double, ByVal digit As Long) '参数1为操作数,参数2为保留位数Dim tmpNum As DoubleDim tmpnum1 As Long '用于保存保留位的后一位数字'将原数字扩大tmpNum = Int(number * 10 ^ (digit + 1))'获取保留位数之后的一位数字tmpnum1 = tmpNum Mod 10'四舍五入进位法则If tmpnum1 >= 5 ThentmpNum = tmpNum + 10 - tmpnum1ElsetmpNum = tmpNum - tmpnum1End If'结果返回myround = tmpNum / 10 ^ (digit + 1)
End Function
Excel 2010 VBA 入门 044 用VBA进行四舍五入相关推荐
- Excel 2010 VBA 入门 014 获取VBA帮助
通过录制宏可以得到许多代码,可是看不懂代码,只需要将光标定位在需要帮助的地方,按[F1]键即可打开相应的帮助文件.以获取函数Msgbox帮助时,操作步骤如下. 步骤1 按组合键[Alt+F11]打 ...
- Excel 2010 VBA 入门 103 利用VBA批量插入图片
目录 示例 代码: Shapes.Shape和 ShapeRange Shapes对象插入图形的方法 Excel的坐标 图形大小的调整 获取图片的原始大小 将图片按比例缩放至单元格 图片批量插入的步骤 ...
- Excel 2010 VBA 入门 102 利用VBA批量发送邮件
目录 示例 代码 CDO组件 CDO. Message. Configuration对象 前期绑定与后期绑定 New关键字创建对象 添加邮件的附件 示例 如图所示,该表为某公司员工工资单.现需要将该表 ...
- Excel 2010 VBA 入门 104 利用VBA生成图表
目录 示例 代码 ChartObjects集合和ChartObject对象 数据系列(Series)对象 添加图表的其他方法 1.通过添加Chart对象添加图表 2.通过Shapes集合的AddCha ...
- Excel 2010 VBA 入门 034 创建图片批注
目录 批注(Comment)对象 批注的添加与删除 FiIIFormat对象 OnError语句 示例: 批注(Comment)对象 Comment对象是单元格的一个属性,表示单元格的批注.Comme ...
- Excel 2010 VBA 入门 001显示开发工具选项卡
目录 VBA简介 宏简介 显示"开发工具"选项卡 VBA简介 Visual Basic for Application (VBA)是Visual Basic的一种宏语言,是依附 ...
- Excel 2010 VBA 入门 006 设置宏安全性
目录 操作方法 步骤1单击"开发工具"选项卡中的"宏安全性"按钮,如图所示. 步骤2在"信任中心"的"宏设置"选项中 ...
- 《Excel 2019 VBA入门与应用(视频教学版)》图书简介
#好书推荐##好书奇遇季#<Excel 2019 VBA入门与应用(视频教学版)>京东当当天猫都有发售.Excel VBA是Excel数据分析必须掌握的工具,学习本书能够提高Excel完成 ...
- Excel VBA 入门(零)
本教程所用系统环境: Windows 10 Excel 2013 1. 添加开发工具 打开Excel,依然找到"文件"->"选项"->"自 ...
最新文章
- linux内核模块编译
- 即时通讯音视频开发(二):视频编解码之数字视频介绍
- dynamic和匿名对象
- Latex快速入门系列 -- 在TexStudio中正确插入参考文献的基本操作
- Windows系统(cmd)常用命令
- 获取 服务器文件列表,云对象获取服务器的文件列表
- python 读png的值变了_深度学习数据预处理_python批量转换labelme标注的json格式标签为png格式...
- ActivityMq的使用(小例子)
- linux内核编译串口驱动,ARM Linux下安装CH341串口驱动
- 51单片机led灯依次点亮
- java linux路径带括号,java执行linux命令 括号
- 手提电脑亮度不能调节,亮度调节按钮变灰,找不到调节亮度按钮
- PAT 7-14 电话聊天狂人
- 2022-爬虫-Selenium-百度安全验证
- itextpdf将带复选框的html_使用flying-saucer 实现 html转pdf实现input框select,textarea checkbox等的显示...
- 边角地“变废为宝” 重庆首批社区体育文化公园交付使用
- copy-to-clipboard 的拷贝使用
- 金山软件2015校园招聘
- singer页面点击歌手singer是跳转到singer-detail的设置
- C盘清理:Autodesk Shared文件夹转移
热门文章
- 纯CSS3书本打开翻页js特效
- usb接口供电不足_机箱前USB接移动硬盘不能识别,主机后USB到可以?怎么回事
- 解决供电不足造成的USB设备掉驱动
- 2023年河南理工大学考研分析
- 研大考研不是骗子:考研英语复习备考的方法
- 苹果第二财季净利降16% 大中华区营收下滑21.5%
- 计算机系统要解决的问题输入,电脑切换不出来输入法,详细教您解决切换输入法的问题...
- 连续三天熬夜次世代建模师终于出手,让老板多招女员工
- mysql批量修改学号位数_mysql批量修改表前缀
- 王者荣耀5月一日服务器维护,王者荣耀5月21日官方更新公告[多图]