如何在VBA中使用Excel的内置模函数(MOD)?

时间:2018-12-06 22:26:56

标签: excel vba excel-vba modulo excel-2016

我的问题与this post有关。

但是,假设我要在VBA中使用Excel的内置MOD(模)函数。 This site建议使用Application.WorksheetFunction.[insert name of Excel function]可以达到预期的效果。

但是,Application.WorksheetFunction.MOD不起作用。

实际上,当我在VBA中简单地输入Application.WorksheetFunction.时,就会出现一个下拉菜单,其中提供了可供选择的函数名称列表,但此列表中未提供MOD

2个问题:

  1. 这是怎么回事?
  2. 我如何在VBA中实际使用Excel的内置MOD函数?

注意:我从这条路径开始,开始尝试使用VBA的1.7 Mod 0.5函数使0.2等于Mod,但它会产生{{1}在生成的Excel单元格中,我将VBA函数应用到该单元格。但是,如果我直接在Excel中键入#VALUE!,则会得到正确的答案(即MOD(1.7,0.5)

1 个答案:

答案 0 :(得分:5)

您按原样使用,因为它是一个运算符(带有整数)。如果您想使用双打等,请使用evaluate,例如

例如

Debug.Print 2 Mod 12
Debug.Print Evaluate("Mod(1.7,0.5)")
Dim x As Double, y As Double
x = 1.7
y = 0.5
Debug.Print Evaluate("Mod(" & x & "," & y & ")")

请参见documentationlimitations有大量数字。来自Microsoft的常见解决方法是:

=number-(INT(number/divisor)*divisor)