ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 826|回复: 4

使用WorksheetFunction嵌套函数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-2-13 11:25 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 木易2008 于 2023-2-13 11:31 编辑

      在excel中通过函数averageifs可以获得需要的数值,并嵌套函数round将该数值*10000,再取2位小数,将获取到的值放到N4单元格
      函数公式如下:ROUND(AVERAGEIFS(F:F,C:C,M4)*10000,2)
现在使用vba可以实现上面公式中的averageifs部分,

[n5] = Application.WorksheetFunction.AverageIfs([f:f], [c:c], [m5])



也就是函数的AVERAGEIFS(清洗数据!F:F,清洗数据!C:C,A2)

现在想在外面嵌套一层round函数,想请教下在不使用2行代码的情况下,通过vba该如何实现?试了好多次都没有成功。



[n5] = Application.WorksheetFunction.AverageIfs([f:f], [c:c], [m5])
[n5] = Application.WorksheetFunction.Round([n5] * 10000, 2)


也就是如何将上面2行代码合并到一起,谢谢。

vba函数嵌套.zip

405.8 KB, 下载次数: 0

TA的精华主题

TA的得分主题

发表于 2023-2-13 11:36 | 显示全部楼层
[n5] = VBA.Round(Application.WorksheetFunction.AverageIfs([f:f], [c:c], [m5]), 0)

TA的精华主题

TA的得分主题

发表于 2023-2-13 12:03 来自手机 | 显示全部楼层
ROUND函数ⅤBA有,可不加Application
AVERAGEIFS函数VBA无,要加Application
VBA引用单元格简化写法:两边加中括号[ ]

[N5] = ROUND(Application.AVERAGEIFS([F:F],[C:C],[M4])*10000,2)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-2-13 14:44 | 显示全部楼层
VBA中,round函数,可以前面加VBA,也可以加Application,也可以什么都不加,就象函数那样直接用。
以下几种表达方式都是可以的:
[n5] = Application.Round([n3], 2)
[n5] = VBA.Round([n3], 2)
[n5] = Round([n3], 2)


TA的精华主题

TA的得分主题

发表于 2023-2-13 14:47 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
VBA的Round函数与工作表的Round函数均为四舍五入函数,两个函数的语法相同,但有着很大的不同,其主要区别如下:
1:VBA的Round函数的第二个参数可省略,当省略时,表示返回整数。工作表的Round函数不可省略。
2:VBA的Round函数的第二参数不可为负数。工作表的Round函数的第二个参数可以为负数,当为负数,表示向小数点左边取保留位数
3:工作表Round函数进行四舍五入时,将查看保留位数的后一位数字,该数字大于或等于5时,则进1,反不进位。而VBA的Round函数规则如下:
当保留位数的后一位数字大于5时,进位
当保留位数的后一位数字小于5时,不进位
当保留位数的后一位数字为5时,若该位之后存在任何大于0的数,进位
当保留位数的后一位数字为5时,若该位之后的数为0且保留位的数字为奇数时,进位
当保留位数的后一位数字为5时,若该位之后的数为0且保留位的数字为偶数时,不进位

评分

2

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-19 07:28 , Processed in 0.036294 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表