excel - 手动分配具有 1 个条目的二维数组

标签 excel vba

我试图通过将数组设置为等于 Excel 范围(n 行 X 1 列)来分配二维数组。

当 (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

我尝试通过 this 手动分配数组解决方案利用 Evaluate 函数,但这会产生我的错误。我还尝试使用 Get_Params = [{Temp.Range("U2").Value, 1}] 并收到相同的错误

如何手动分配此数组以允许我顺利完成上述循环?

最佳答案

你可以替换

Get_Params = [{Temp.Range("U2"), 1}]

Dim returnValue As Variant

'... then in the if statement:

ReDim returnValue(1 to 1, 1 to 1)
returnValue(1,1) = Temp.Range("U2").Value
Get_Params = returnValue

关于excel - 手动分配具有 1 个条目的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55286769/

相关文章:

excel - Application.Run 和范围参数?

excel - VBA 03 - 应用程序路径 - 到达父文件夹

excel - 在 VBA 中查找数组的模式

php - 从 MySQL 数据库导出数据到 PHP 中的 excel

vba - 通过 VBA 插入数组公式

vba - 在 Excel 中一次设置多个切片器

windows - VBA - Windows 和 OSX 中的用户名

python - 在 excel 中隐藏行不起作用 - pywin32

java - java中如何将json数据导出到excel表中

excel - 检查单元格然后执行求和操作的公式