在VBA中,是否可以将范围设置为相对于另一个范围?

我正在写一个很长的脚本,我正在尽可能地find尽可能多的快捷方式。 我需要在开始之前设置很多范围。 是否有可能取代像这样的东西:

Dim Range1 As Range Dim Range2 As Range Dim Range3 As Range Dim i As Long i = 2 Set Range1 = ("D" & i) Set Range2 = ("H" & i) Set Range3 = ("L" & i) 

有一些像

 Dim Range1 As Range Dim Range2 As Range Dim Range3 As Range Dim i As Long Dim y As Long i = 2 y = 4 Set Range1 = ("D" & i) Set Range2 = (Range1.Offset(,y)) Set Range3 = (Range2.Offset(,y)) 

如果我有100个范围设置,所有距离相等,这将是非常有帮助的。 如果我要使用100个范围,我是否需要像在这里一样调整每个范围? 或者我可以做一些像“设置范围N为范围,其中N是1到100之间的每一个整数?

提前致谢。

你可以用字典。

 Sub ex() Dim dict As Object Set dict = CreateObject("Scripting.Dictionary") Dim i As Integer, y As Integer Dim key y = 4 For i = 0 To 2 dict.Add i, Range("D2").Offset(, y * i) Next For Each key In dict dict(key).Value = "test" & key Next End Sub 

字典(i)将是一个范围,你可以做任何你正常的事情。