使用字符串串联修改不同的范围值

时间:2019-12-30 13:26:09

标签: excel vba range

我在一定范围内粘贴了一些用户先前输入的值,并且为了正确设置高级过滤器,我必须更改其值(即设置过滤器的文本,以便像{{ 1}}变成范围内所有单元格的parameter

但是,当尝试直接使用<>*parameter*进行操作时,VBA会遇到rng.Value = "<>*" & rng.Value & "*"(不兼容的类型)。

我已经找到解决方法

Error 13

但是我想知道是否有可能以另一种方式实现而无需循环并使用Range's自己的方法和属性。请注意,我并不是要为范围内的所有单元格设置一个单一值,而是将每个不同的值连接到开头的For each cel in rng cel.Value = "<>*" & cell.Value & "*" Next cel 和结尾的<>*

1 个答案:

答案 0 :(得分:0)

Range.Value docs和其他许多地方所述:

  

对于第一个区域包含多个单元格的范围, Value 返回一个 Variant ,其中包含二维数组中的值第一个范围的单个单元格。

您无法连接字符串和数组。因此,您需要循环。

注意-当您需要循环时,遍历数组而不是逐个单元将更快。