【问题标题】:VBA User Defined Function not working in Mac Excel 2016VBA 用户定义函数在 Mac Excel 2016 中不起作用
【发布时间】:2017-03-20 13:42:27
【问题描述】:

我在 Excel 2016 for Mac 中编写了一个用户定义的函数。该功能本身有效;我在 VBA 中的一个新子例程中调用它,它运行良好。但是当我从工作表中调用它时,它什么也不做。

    Function isMultipleOf5(myInput As Integer) As Boolean

    Dim result As Double

    result = myInput Mod 5

    If result = 0 Then
        isMultipleOf5 = True
    Else
        isMultipleOf5 = False
    End If

    End Function

【问题讨论】:

  • 没有代码,很难告诉你具体哪里出了问题。最佳猜测:它做了一些 UDF 不允许做的事情。
  • 附上代码。它在我同学的 Windows 电脑上运行良好。
  • 不知道 Mac 上的 vba,但我会尝试将 myInput 更改为变体。至少在 PC 上,这是 UDF 参数的默认数据类型。
  • @Nate,该错误表明该函数不可访问,因此您在单元格公式中有拼写错误,或者该函数是在不同工作表的代码模块或工作簿模块中定义的。为了可以从所有工作表中访问该函数,应将其放置在标准代码模块中。
  • @DavidZemens 就是这样!!我将代码放在“Microsoft Excel 对象”下,并将代码放在 ThisWorkbook 或 Sheet1 中不允许函数工作。相反,您必须右键单击 Microsoft Excel 对象 -> 插入 -> 模块 -> 将代码放在新的空白区域中。

标签: excel excel-2016 vba


【解决方案1】:

原来我将代码放在“Microsoft Excel 对象”下,而将代码放在 ThisWorkbook 或 Sheet1 中不允许该函数工作。相反,您必须右键单击 Microsoft Excel 对象 -> 插入 -> 模块 -> 将代码放在新的空白区域中。

【讨论】:

    【解决方案2】:

    这也取决于插入模块的位置。

    如果包含该函数的模块被插入到您运行公式的工作簿中,则可以直接从电子表格中调用该函数。但是,如果将 Module 插入到个人 makro 工作簿中,则必须从电子表格中调用该函数,如下所示=PERSONAL.XLSB!function()

    【讨论】:

      猜你喜欢
      • 2019-04-04
      • 2015-11-10
      • 2012-04-20
      • 1970-01-01
      • 1970-01-01
      • 2015-08-12
      • 2019-01-08
      • 2023-03-29
      • 1970-01-01
      相关资源
      最近更新 更多