我正在尝试将两个范围合并为一个变量。这是我的代码,但不确定为什么我得到 Type Mismatch 错误13:
Dim rngText as Range, rngText2 as Range, dText
Set rngText = wSheet3.Range(wSheet3.Range("A1"), wSheet3.Cells(Rows.Count, 1).End(xlUp))
Set rngText2 = wSheet3.Range(wSheet3.Range("B1"), wSheet3.Cells(Rows.Count, 2).End(xlUp))
'this line I am getting an error:
dText = rngText.Value & rngText2.Value
答案 0 :(得分:2)
&
连接运算符与String
个操作数一起使用,并且您将为它提供两个包含未知数量单元格值的2D Variant数组。
您无法使用&
来组合Range
这样的对象; 类型不匹配是因为VBA期望String
运算符到&
运算符,因此将表达式解析为String
。
相反,使用Application.Union
函数 - 该函数将rngText
和rngText2
范围作为参数, union 它们,并返回单个{{ 1}}包含两者的对象。由于Range
是对象类型,因此您需要使用Range
关键字进行该分配:
Set
现在没有理由不宣布Set dText = Union(rngText, rngText2)
:)