繁体   English   中英

在excel vba中创建多个范围的范围

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM