我有一个带矩阵的工作表,它与黑色的单元格对角划分。矩阵包含相同的标题,包括垂直和水平。 这个想法是你在底部区域,对角线下面显示项目之间的关系。
我想创建一个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)
是否有更简单的方法来创建此范围,或以某种方式解决此问题?
提前致谢
答案 0 :(得分:0)
您似乎无法为OldRange设置初始范围,因此在第一次迭代期间它将无效 - 可能是您出错的原因。
删除此行:
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))