结合两个范围

时间:2018-01-29 20:06:41

标签: vba excel-vba excel

我正在尝试将两个范围合并为一个变量。这是我的代码,但不确定为什么我得到 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

1 个答案:

答案 0 :(得分:2)

&连接运算符与String个操作数一起使用,并且您将为它提供两个包含未知数量单元格值的2D Variant数组。

您无法使用&来组合Range这样的对象; 类型不匹配是因为VBA期望String运算符到&运算符,因此将表达式解析为String

相反,使用Application.Union函数 - 该函数将rngTextrngText2范围作为参数, union 它们,并返回单个{{ 1}}包含两者的对象。由于Range是对象类型,因此您需要使用Range关键字进行该分配:

Set

现在没有理由不宣布Set dText = Union(rngText, rngText2) :)

相关问题