【问题标题】:How to understand the code in post on "Getting unique values in Excel ..."?如何理解“Getting unique values in Excel ...”中的代码?
【发布时间】:2019-03-31 04:44:37
【问题描述】:

参考answered Jun 27 '13 at 7:43 by totymedlianswered Apr 13 '16 at 0:53 by Meir Shachar

我确实更喜欢 VBA 解决方案,尽管 OP 没有要求。但是,我能够解析和理解上面的大多数链接响应,除了以下行:

distance = Range(Application.Caller.Address).row - rng.row

看来,张贴者正在使用此构造来确定结果范围(或数组?)是否大于零长度,以避免创建空的 Variant 返回值。如果是这样,我看不到这样做的必要性,并且能够在不引用整数 distance 的情况下创建有用的输出。

已经尝试过尽职调查,但是,通常神秘的Microsoft reference 对我来说用处不大。如果有人可以解释Application.Caller.Address 构造的用途/性质(甚至更好——在这个特定的例子中),我可以更好地判断我是否真的需要使用它。

【问题讨论】:

  • distance = Application.Caller.Row - rng.row 更简洁 - 无需提取地址,然后将其转回范围...请注意,您还可以使用 Application.ThisCell 代替 Application.Caller

标签: excel vba unique-values


【解决方案1】:

如果您在 UDF(用户定义函数)中使用 Application.Caller.Address,它会返回包含调用 UDF 的公式的单元格的地址。

例如,如果单元格B2 包含公式=listUnique(A1:A10),那么Application.Caller.Address 将返回地址B$2$

【讨论】:

  • 谢谢。确认出于我在 UserForm 代码模块中使用的意图,我可以安全地忽略/解决对 distance 的引用。非常感谢。
猜你喜欢
  • 2022-12-19
  • 2022-12-02
  • 2022-12-01
  • 2020-05-30
  • 1970-01-01
  • 2022-12-26
  • 2022-12-01
  • 2019-03-17
  • 1970-01-01
相关资源
最近更新 更多