尝试将范围加载到数组中

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 以在数组列之间迭代...