如何用VBA创建自己的用户定义函数

2017-01-02

VBA

在这篇文章中,我们将探索如何制作我们自己的功能用户定义函数UDF),这将非常类似于那些原生的Excel,如总和VLOOKUP指数匹配等。您可能会发现,由于各种原因,您想创建自己的公式。

  • 你想要做的只是不可能用本机函数。创建一个UDF这可能是唯一的解决办法。
  • 使用本机函数创建的公式太长,有太多重复输入,所以很难阅读。创建一个UDF可以简化。

如果你不太熟悉VBA,如何打开visual basic编辑器和在哪里放置代码,那么你可能想阅读这篇文章如何使用你在网上找到的VBA代码

在我们的例子中,我们将创建一个UDF从引用的单元格返回单元格颜色。这将是一个非常简单的函数,只有三行代码,但没有本地Excel函数可以做到这一点和一个UDF是唯一的解决办法。

在本例中,我们有一组客户订单数据,但状态已经用颜色编码到order ID单元格中。用颜色编码的数据看起来不错,但用公式和数据透视表分析数据可能会很困难。为了将这种颜色编码转换为有形的数据,我们将创建一个UDF,以单元格作为输入并返回单元格格式颜色。

  1. 这里我们有一个颜色编码的图例,已经应用到我们的数据。
    • 绿色= order has been收到了由客户。
    • 黄色的= order has been寄给客户,但尚未收到。
    • 红色的=秩序已经尚未装运给客户。
  2. 我们的数据包含一个订单ID,该ID也用颜色编码,以包含订单状态。这个列包含两个不同的数据片段,但是可视数据不容易处理,我们希望在单独的列中将其转换为有形数据。

打开visual basic编辑器(VBE),可以使用键盘快捷键Alt +季或者去开发人员按下Visual Basic按钮下代码部分。

  1. 创建一个新模块插入UDF。
  2. 复制和粘贴将此代码导入VBE。
    函数GetColourSelectedRange为范围GetColour = SelectedRange.Interior.Color结束函数

所有UDF的代码都包含这些主要组件。

  • 打开和关闭-必须以函数然后用结束函数
  • 函数名-必须使用唯一的名称这个系统还没有用到。
  • 变量的输入-这是你可以申报的地方你的UDF的论点.你可以用空括号()如果你的函数没有参数。
  • 代码- UDF代码应该赋值到函数名。

现在,我们可以像使用其他原生Excel函数一样,在电子表格中使用UDF。由于我们将VBA保存在本地文件中的一个模块中,所以我们只能在这个特定的电子表格中使用UDF,它将无法全局使用。

  1. 开始键入我们的UDF= GetColour (在一个细胞。
  2. 函数自动完成将显示我们的UDF以及本机函数。
  3. Excel的彩色格式编码结果现在显示出来。

关于作者

约翰MacDougall

约翰MacDougall

John是微软MVP和自由顾问和培训师,擅长Excel, Power BI, Power automation, Power Apps和SharePoint。你可以在约翰的博客或YouTube频道上找到其他有趣的文章。

订阅

广告

相关文章

评论

0评论

获取最新消息

关注我们

在社交媒体上关注我们,了解Excel中的最新技巧!

把它钉在Pinterest上

分享这