【发布时间】:2021-03-05 22:36:09
【问题描述】:
我知道这是一个非常不寻常的问题,你可能不明白我为什么要这样做,但是......
如果单元格 A1 中的值为 5,则会发生这种情况:
Myfunction(A1):输出 5
在 vba 模块中:
Function Test(array As String)
Test=array
End function
我想要的示例:
Myfunction(A1):输出字符串“A1”
或者
Myfunction(A1:B3):输出字符串“A1:B3”
或者
Myfunction(A1:B3 & B5:B9):输出字符串“A1:B3 & B5:B9”
如何获得 vba 函数来执行此操作。基本上我希望函数将单元格地址存储为字符串,而不是位于单元格地址位置的值。我知道当您将值输入函数或类似的内容时,您可以使用“A1:A4”,但这不是我想要的。这也是一个函数而不是子函数。
【问题讨论】:
-
第一个例子都很难回答,但是“A1:B3 & B5:B9”会让人困惑吗?您打算用“&”分隔多个范围?
-
是的,所以在我的代码中,我将使用 split 函数将字符串 A1:A5 和 B1:B5 分成两个单独的字符串。我将使用范围函数从那里创建数组
-
那么唯一的方法就是使用引号来表示它是一个字符串。但更好的方法是使用作为范围的参数数组,然后使用范围迭代它以加载数组。
-
Function MyFunction(ParamArray arr as range)然后你可以输入Myfunction(A1:B3,B5:B9)迭代范围并从它们的值加载数组。 -
这是一个 xy 问题。如果不确切了解您的计划,我们将无能为力,因为根据您所提供的知识,我们提出的建议是不正确的。
标签: excel vba user-defined-functions