在EXCEL的VBA中,用什么办法可以对选中的单元格区域的值先取整,再相加?

我是刚学一些VBA,下面的代码好像是错在WorksheetFunction.TRUNC(target),请高手指教!或者有什么更好的代码,跪求.Functionf(ByV... 我是刚学一些VBA,下面的代码好像是错在WorksheetFunction.TRUNC

(target),请高手指教!或者有什么更好的代码,跪求.

Function f(ByVal target As Range)
f = WorksheetFunction.SumProduct(WorksheetFunction.TRUNC

(target))

End Function
展开
 我来答
klndicky
2007-05-29 · TA获得超过666个赞
知道小有建树答主
回答量:381
采纳率:100%
帮助的人:0
展开全部
Excel VBA 是不接受 TRUNC 函数

WorksheetFunction.TRUNC(target) 可改成以下其中一个, 与TRUNC 的计算结果是一样的

WorksheetFunction.Rounddown(target,2)
WorksheetFunction.Floor(Abs(target),1)*Sgn(target)
Int(Abs(xx))*Sgn(target) ←这个无需加上WorksheetFunction

其实最常用是 Int(target), 但 Int 对于负数是与Trunc有分别的

另顺带一提, 一些旧版本Excel是不能用WorksheetFunction, 要改成 Application,
如 Application.Rounddown(target,2)

新版本(Excel 2000或之后), 两种都可以

以下的VBA刚测试过, 可行。
Function f(ByVal target As Range) As Double
f = WorksheetFunction.SumProduct(Application.RoundDown(target, 0))
End Function
=f(A1:A100) 与 =sumproduct(trunc(A1:A100)) 的效果是相同
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式