目录

示例

实现代码

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进行四舍五入相关推荐

  1. Excel 2010 VBA 入门 014 获取VBA帮助

    通过录制宏可以得到许多代码,可是看不懂代码,只需要将光标定位在需要帮助的地方,按[F1]键即可打开相应的帮助文件.以获取函数Msgbox帮助时,操作步骤如下. 步骤1   按组合键[Alt+F11]打 ...

  2. Excel 2010 VBA 入门 103 利用VBA批量插入图片

    目录 示例 代码: Shapes.Shape和 ShapeRange Shapes对象插入图形的方法 Excel的坐标 图形大小的调整 获取图片的原始大小 将图片按比例缩放至单元格 图片批量插入的步骤 ...

  3. Excel 2010 VBA 入门 102 利用VBA批量发送邮件

    目录 示例 代码 CDO组件 CDO. Message. Configuration对象 前期绑定与后期绑定 New关键字创建对象 添加邮件的附件 示例 如图所示,该表为某公司员工工资单.现需要将该表 ...

  4. Excel 2010 VBA 入门 104 利用VBA生成图表

    目录 示例 代码 ChartObjects集合和ChartObject对象 数据系列(Series)对象 添加图表的其他方法 1.通过添加Chart对象添加图表 2.通过Shapes集合的AddCha ...

  5. Excel 2010 VBA 入门 034 创建图片批注

    目录 批注(Comment)对象 批注的添加与删除 FiIIFormat对象 OnError语句 示例: 批注(Comment)对象 Comment对象是单元格的一个属性,表示单元格的批注.Comme ...

  6. Excel 2010 VBA 入门 001显示开发工具选项卡

    目录 VBA简介 宏简介 显示"开发工具"选项卡 ​ VBA简介 Visual Basic for Application (VBA)是Visual Basic的一种宏语言,是依附 ...

  7. Excel 2010 VBA 入门 006 设置宏安全性

    目录 操作方法 步骤1单击"开发工具"选项卡中的"宏安全性"按钮,如图所示. ​ 步骤2在"信任中心"的"宏设置"选项中 ...

  8. 《Excel 2019 VBA入门与应用(视频教学版)》图书简介

    #好书推荐##好书奇遇季#<Excel 2019 VBA入门与应用(视频教学版)>京东当当天猫都有发售.Excel VBA是Excel数据分析必须掌握的工具,学习本书能够提高Excel完成 ...

  9. Excel VBA 入门(零)

    本教程所用系统环境: Windows 10 Excel 2013 1. 添加开发工具 打开Excel,依然找到"文件"->"选项"->"自 ...

最新文章

  1. linux内核模块编译
  2. 即时通讯音视频开发(二):视频编解码之数字视频介绍
  3. dynamic和匿名对象
  4. Latex快速入门系列 -- 在TexStudio中正确插入参考文献的基本操作
  5. Windows系统(cmd)常用命令
  6. 获取 服务器文件列表,云对象获取服务器的文件列表
  7. python 读png的值变了_深度学习数据预处理_python批量转换labelme标注的json格式标签为png格式...
  8. ActivityMq的使用(小例子)
  9. linux内核编译串口驱动,ARM Linux下安装CH341串口驱动
  10. 51单片机led灯依次点亮
  11. java linux路径带括号,java执行linux命令 括号
  12. 手提电脑亮度不能调节,亮度调节按钮变灰,找不到调节亮度按钮
  13. PAT 7-14 电话聊天狂人
  14. 2022-爬虫-Selenium-百度安全验证
  15. itextpdf将带复选框的html_使用flying-saucer 实现 html转pdf实现input框select,textarea checkbox等的显示...
  16. 边角地“变废为宝” 重庆首批社区体育文化公园交付使用
  17. copy-to-clipboard 的拷贝使用
  18. 金山软件2015校园招聘
  19. singer页面点击歌手singer是跳转到singer-detail的设置
  20. C盘清理:Autodesk Shared文件夹转移

热门文章

  1. 纯CSS3书本打开翻页js特效
  2. usb接口供电不足_机箱前USB接移动硬盘不能识别,主机后USB到可以?怎么回事
  3. 解决供电不足造成的USB设备掉驱动
  4. 2023年河南理工大学考研分析
  5. 研大考研不是骗子:考研英语复习备考的方法
  6. 苹果第二财季净利降16% 大中华区营收下滑21.5%
  7. 计算机系统要解决的问题输入,电脑切换不出来输入法,详细教您解决切换输入法的问题...
  8. 连续三天熬夜次世代建模师终于出手,让老板多招女员工
  9. mysql批量修改学号位数_mysql批量修改表前缀
  10. 王者荣耀5月一日服务器维护,王者荣耀5月21日官方更新公告[多图]