我正在尝试计算商品要堆叠的层数。我有一个可变的数量(iQty),给定的床宽(dRTW),商品的单位宽度(dWidth)和每层的数量(iLayerQty)。

每层数量计算为iLayerQty = Int(dRTW/dWidth)
现在,我需要将总数量除以每层的数量并四舍五入。在Excel公式中,这很容易,但是我试图避免WorksheetFunction调用以最大程度地减少A1/R1C1困惑。目前,我对此进行了近似:

(Number of layers) = ((Int(iQty / iLayerQty) + 1)

而且在大多数情况下都可以正常工作-除非数字给出一个整数(例如, cargo 宽度为0.5 m,适合安装在2.5 m的可挂式拖车上)。当然,在这些情况下,加一会破坏结果。

是否有任何方便的方法来调整该公式以获得更好的向上舍入?

最佳答案

我看不出有什么原因可以避免使用WorksheetFunction;我在这里看不到任何困惑。

Number_of_layers = WorksheetFunction.RoundUp(iQty / iLayerQty, 0)

您还可以滚动自己的函数:
Function RoundUp(ByVal Value As Double)
    If Int(Value) = Value Then
        RoundUp = Value
    Else
        RoundUp = Int(Value) + 1
    End If
End Function

这样称呼它:
Number_of_layers = RoundUp(iQty / iLayerQty)

09-05 17:16