【发布时间】:2019-11-20 11:43:20
【问题描述】:
我有一个包含可变长度字符串的一维数组。我想使用EVALUATE、MAX 和LEN 函数的组合来查找这些字符串中的最大长度。
我知道对于声明为Rng 的工作表范围,以下代码有效:
MX_LEN = EVALUATE("MAX(LEN(" & Rng.Address & "))")
但我无法使用一维数组Arr 实现这样的目标。
MX_LEN = EVALUATE("MAX(LEN(" & Arr & "))")
编辑:
我收到Runtime error 13: Type Mismatch 的代码如下。这是一个二维数组,我只访问第一个维度。
观察:
这里的字符串有点长,每个大约 100-200 个字符。
我明白了,不知何故,Join 中缺少开始和结束双引号。
代码是:
MX = Application.Evaluate("MAX(LEN({""" & Join(Application.Transpose(Application.Index(Arr, 0, 1)), """, """) & """}))")
P.S:我不想循环数组,因为数组非常小。
【问题讨论】:
-
如果数组非常小,循环肯定会非常快。
-
你的意思是数组很大吗?
-
检查我的答案。要评估的总字符串不能超过 255 个字符。可能使这不是您解决此问题的方式=)
标签: arrays excel vba max evaluate