Я пытаюсь назначить двумерный массив, просто устанавливая массив равным диапазону Excel (n Rows X 1 Column
).
Когда (n = 1
) это просто дает мне значение, поэтому я хочу вручную назначить массив в этом случае.Я попробовал ниже, но он заполняется Error 2015
Function Get_Params(ws As Worksheet, LR As Long, Target As Range) As Variant
Dim Temp As Worksheet: Set Temp = ThisWorkbook.Sheets("Temp")
Dim LR2 As Long
ws.Range("D1:D" & LR).SpecialCells(xlCellTypeVisible).Copy
Temp.Range("U1").PasteSpecial xlPasteValues
Temp.Range("U1").RemoveDuplicates 1, xlYes
LR2 = Temp.Range("U" & Temp.Rows.Count).End(xlUp).Row
If LR2 = 2 Then
Get_Params = [{Temp.Range("U2"), 1}] '<-- ISSUE HERE
Else
Get_Params = Temp.Range("U2:U" & LR2).Value
End If
Temp.Range("U1").EntireColumn.ClearContents
End Function
Цель состоит в том, чтобы сделать что-то вроде
For i = LBound(Get_Params, 1) to UBound(Get_Params, 1)
'Do something with Get_Params(i, 1)
Next i
Я пытался вручную назначить массив через это решение, использующее функцию Evaluate
, но это приводит к моей ошибке.Я также попытался использовать Get_Params = [{Temp.Range("U2").Value, 1}]
и получить ту же ошибку
Как я могу вручную назначить этот массив, чтобы позволить мне пройти через вышеуказанный цикл без ошибок?