尝试将范围加载到数组中
Trying to Load Range into Array
我一直在尝试将范围加载到数组中,但它不起作用,并且对于 G1:Z1
的特定范围没有出现错误,但它适用于列。我真的不知道为什么会感激任何帮助。
Sub LoadingData()
Dim sheet As Worksheet
Dim RangeArray As Variant
Dim i As Long
Dim d As Object
Set sheet = Worksheets("Sheet1")
With sheet
RangeArray = .Range("G1:Z1").Value
End With
Set d = CreateObject("Scripting.Dictionary")
For i = LBound(RangeArray) To UBound(RangeArray)
d(RangeArray(i, 1)) = 1
Next i
With Worksheets("Sheet2").Range("C2").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Join(d.Keys, ",")
.InCellDropdown = True
End With
End Sub
请替换:
For i = LBound(RangeArray) To UBound(RangeArray)
d(RangeArray(i, 1)) = 1
Next i
和
For i = 1 To UBound(RangeArray, 2)
d(RangeArray(1, i)) = 1
Next i
代码需要在范围列之间迭代。 UBound(RangeArray)
returns 数组行数,你需要`UBound(RangeArray, 2),其中returns 列数。
然后,必须移动 i
以在数组列之间迭代...
我一直在尝试将范围加载到数组中,但它不起作用,并且对于 G1:Z1
的特定范围没有出现错误,但它适用于列。我真的不知道为什么会感激任何帮助。
Sub LoadingData()
Dim sheet As Worksheet
Dim RangeArray As Variant
Dim i As Long
Dim d As Object
Set sheet = Worksheets("Sheet1")
With sheet
RangeArray = .Range("G1:Z1").Value
End With
Set d = CreateObject("Scripting.Dictionary")
For i = LBound(RangeArray) To UBound(RangeArray)
d(RangeArray(i, 1)) = 1
Next i
With Worksheets("Sheet2").Range("C2").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Join(d.Keys, ",")
.InCellDropdown = True
End With
End Sub
请替换:
For i = LBound(RangeArray) To UBound(RangeArray)
d(RangeArray(i, 1)) = 1
Next i
和
For i = 1 To UBound(RangeArray, 2)
d(RangeArray(1, i)) = 1
Next i
代码需要在范围列之间迭代。 UBound(RangeArray)
returns 数组行数,你需要`UBound(RangeArray, 2),其中returns 列数。
然后,必须移动 i
以在数组列之间迭代...