Office 365 中的 VBA 用户定义函数
Posted
技术标签:
【中文标题】Office 365 中的 VBA 用户定义函数【英文标题】:VBA User-defined functions in Office 365 【发布时间】:2021-05-24 15:33:06 【问题描述】:某些 MS Office 版本对用户定义的函数有限制。 具体来说,UDFs cannot write to the excel worksheet outside the cells that call the function。
我的问题:此限制是否也适用于 Office 365?
【问题讨论】:
Office 365 中的 Excel 与以前的版本没有根本区别。 如果您想要实现某些特定的目标,那么描述它可能会很有用 - 有人可能会对替代方法提出建议。 您的问题的答案是“是”。限制在 VBE 中,您使用哪个版本都没有关系。它适用于所有 excel 版本。但是正如@TimWilliams 提到的,请描述您的目标,有人可能会提出一些替代方法。 【参考方案1】:同样的限制适用于所有 Office 版本。到目前为止,没有重大更改,尤其是对于 Office 365 应用程序。
【讨论】:
【参考方案2】:如果您使用动态溢出,您可以更改多个单元格:
Public Function Stooges() As Variant
Dim arr(1 To 3) As Variant
arr(1) = "Larry"
arr(2) = "Moe"
arr(3) = "Curly"
Stooges = arr
End Function
请注意,在 Excel 365 中,数组输入不是必需的。
【讨论】:
【参考方案3】:谢谢大家,
答案是“不”。 Excel 365 提供了更大的灵活性。
@Gary'sStudent 的回答让我寻找“溢出”和“动态数组”。 这些是 Excel 365 中添加的功能。以下是参考:
Spilling
Custom functions and dynamic arrays
谢谢!
【讨论】:
UDF 不能直接写入单元格,但它们可以返回数组,并且数组值将进入相邻的单元格。在 Excel 365 之前,需要使用 CTRL+SHIFT+ENTER 将此类函数作为数组公式输入。以上是关于Office 365 中的 VBA 用户定义函数的主要内容,如果未能解决你的问题,请参考以下文章
我想在 Excel 中使用 VBA 从 Office 365 Outlook 邮件中读取 SenderAddress?
Excel VBA 到 PPT 在 Office 365 64 位中不起作用
【OFFICE 365】Power Query 多工作簿合并
Exchange/Office365 自动处理脚本:常用函数