我试图计算一件商品要堆放多少层。我有一个变量(iQty
)、一个给定的货床宽度(dRTW
)、一个商品单位宽度(dWidth
)和一个每层数量(iLayerQty
)。
每层工程量按iLayerQty = Int(dRTW/dWidth)
计算
现在,我需要将总数量除以每层的数量,然后取整。在Excel公式中,这很容易,但我试图避免调用WorksheetFunction,以最大限度地减少A1/R1 C1混淆。目前,我用以下公式近似计算:
(Number of layers) = ((Int(iQty / iLayerQty) + 1)
大多数情况下,这种方法都很有效--除非数字给予整数(例如,货物宽度为0.5米,适合2.5米的拖车)。当然,在这种情况下,加上整数会破坏结果。
有没有什么简便的方法来调整这个公式,以获得一个更好的向上舍入?
5条答案
按热度按时间piok6c0g1#
我看不出有什么理由要避免
WorksheetFunction
;我看不出有什么误会。您也可以滚动自己的函数:
这样称呼它:
du7egjpx2#
如果使用WorksheetFunction object访问ROUNDUP或CEILING函数是不可行的,那么通过一些数学运算也可以实现同样的目的。
VBATrue在数学上相当于(-1)。VBA Round用于避免15位浮点错误。
dnph8jn43#
我使用
-int(-x)
来得到天花板。6g8kf2rb4#
这些是我为此目的而组合在一起的函数。
mwkjh3gx5#
这是我在VBA中的上限。
函数上限(ByVal数值为双精度,ByVal显著性为双精度)为双精度
结束功能