如何在 VBA 中使用 Excel 的内置模函数 (MOD)? admin 2023-09-06 11:24:02 技术标签: 【中文标题】如何在 VBA 中使用 Excel 的内置模函数 (MOD)?【英文标题】:How do I use Excel"s built-in modulo function (MOD) in VBA? 【发布时间】:2018-12-06 22:26:56 【问题描述】: 我的问题与this post有些相关。但是,假设我想在 VBA 中使用 Excel 的内置 MOD(模)函数。This site 建议使用 Application.WorksheetFunction.[insert name of Excel function] 将提供所需的效果。但是,Application.WorksheetFunction.MOD 不起作用。事实上,当我在 VBA 中简单地键入 Application.WorksheetFunction. 时,会出现一个下拉菜单,提供一个可供选择的函数名称列表,但此列表中没有提供 MOD!2 个问题:这是怎么回事?如何在 VBA 中实际使用 Excel 的内置 MOD 函数?注意:我从这条路径开始 b/c 我试图使用 VBA 的 Mod 函数让 1.7 Mod 0.5 等于 0.2,但它会在我应用的结果 Excel 单元格中生成 #VALUE!我的 VBA 函数。但是,如果我直接在 Excel 中输入MOD(1.7,0.5),我会得到正确的答案(即0.2) 【问题讨论】: Mod 是vba 中的有效运算符。例如123 Mod 11 = 2 @UriGoren 那么为什么在 VBA 中使用1.7 Mod 0.5不在将MOD(1.7,0.5) 直接输入 Excel 时起作用可以? (答案应该是 0.2) 作为我上一条评论的快速参考答案:正如 QHarr 在他的 answer 中指出的那样,1.7 Mod 0.5 不起作用的原因是因为 VBA 的 Mod 仅适用于整数。我必须使用 Evaluate("Mod(1.7,0.5)") 在 VBA 中完成这项工作。 【参考方案1】: 您按原样使用,因为它是一个运算符(带有整数)。如果您想使用双打等,请使用evaluate,例如例如Debug.Print 2 Mod 12Debug.Print Evaluate("Mod(1.7,0.5)")Dim x As Double, y As Doublex = 1.7y = 0.5Debug.Print Evaluate("Mod(" & x & "," & y & ")")见documentation。有大量的limitations。 Microsoft 提供的一种常见解决方法是:=number-(INT(number/pisor)*pisor) 【讨论】: @QHarr 2 Mod 12 有效,但@theforestecologist 是正确的,因为原始值(即1.7 Mod 0.5)返回错误。不,我没有投反对票。 因为你必须使用评估。 VBA 中的 Mod 需要整数。 @QHarr 您能否更新您的答案,演示如何将Evaluate 与变量一起使用?例如:如果我设置了Function modFunc(x,y),我如何将x 和y 的更改值合并到Debug.Print Evaluate("Mod(x,y)") 中? 感谢您的编辑。最后:为什么我需要包含Debug.Print? 噢噢噢。知道了。谢谢!为您的帮助 +1,伙计!以上是关于如何在 VBA 中使用 Excel 的内置模函数 (MOD)?的主要内容,如果未能解决你的问题,请参考以下文章 我的usb设备总是会被识别为libusb-win32 devices 如何在wps表格中插入日历表 您可能还会对下面的文章感兴趣: 相关文章 浏览器打不开网址提示“ERR_CONNECTION_TIMED_OUT”错误代码的解决方法 如何安装ocx控件 VMware的虚拟机为啥ip地址老是自动变化 vbyone和EDP区别 linux/debian到底怎么重启和关机 苹果平板键盘被弄到上方去了,如何调回正常? 机器学习常用距离度量 如何查看kindle型号