Excel 在VBA中,是否可以将一个范围设置为相对于另一个范围?
我正在写一个很长的脚本,我正试图找到尽可能多的捷径。在开始之前,我需要设置很多范围。是否有可能替换如下内容:Excel 在VBA中,是否可以将一个范围设置为相对于另一个范围?,excel,vba,Excel,Vba,我正在写一个很长的脚本,我正试图找到尽可能多的捷径。在开始之前,我需要设置很多范围。是否有可能替换如下内容: 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 Ra
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个量程,我是否需要像这里一样对每个量程进行调暗?或者我可以做一些类似“将Range设置为Range,其中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
dict(i)将是一个范围,你可以用它做任何你平常想做的事情 这看起来是在正确的轨道上。你能详细说明一下Dim键线的含义,以及它与输出的关系吗?谢谢。他们的dim key只是用于稍晚一点的“for each key”,您不必使用它,但我发现它比执行“for I=0 to dict.count-1”之类的操作更好,特别是如果您不确定您的键可能是什么。它允许您迭代所有键,不管它们是什么。