[英]Creating a range from several ranges in excel vba
我有一个带矩阵的工作表,它与黑色的单元格对角划分。 矩阵包含相同的标题,包括垂直和水平。 这个想法是你在底部区域,对角线下面显示项目之间的关系。
我想创建一个Range(MatrixRange),它是该区域的底部。
我想做的是为我使用的每个列创建一个范围,并将其添加到MatrixRange中。 因此,尝试组合的不同范围具有不同的高度。
Dim MatrixRange As Range
Private Sub Workbook_Open()
Dim n As Integer
Dim NextRange As Range
Dim OldRange As Range
Dim ws As Worksheet
Set ws = Sheets("Systemmatrise")
With ws
For n = 1 To 68
Set OldRange = MatrixRange
Set NextRange = .Range(Range("B9").Offset(n + 1, n), Cells(78, n + 2))
Set MatrixRange = Union(OldRange, NextRange)
Next n
End With
Debug.Print MatrixRange
End Sub
我收到“运行时错误5”
Set MatrixRange = Union(OldRange, NextRange)
是否有更简单的方法来创建此范围,或以某种方式解决此问题?
提前致谢
您似乎没有为OldRange设置初始范围,因此在第一次迭代期间它将是Nothing - 可能是您的错误的原因。
删除此行:
Set OldRange = MatrixRange
纠正此行以在单元格前面包含一个点:
Set NextRange = .Range(Range("B9").Offset(n + 1, n), .Cells(78, n + 2))
在For循环之前,添加这个(注意额外的点,谢谢Jeeped):
Set OldRange = .Range(.Range("B9").Offset(1,0), .Cells(78, 2))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.