【发布时间】:2018-10-22 09:08:42
【问题描述】:
我尝试在 Excel 2016 中将不连续的行单元格范围显示到 2 列列表框中,但没有成功。我使用的最新建议是将范围值移动到数组中并使用数组写入列表框。
我使用 FindAll 函数搜索大名称范围以提取满足字符串条件的行。我最终得到一个 28 行 x 4 列的非连续范围(例如:A3:D3, A7:D7, A15:D15, A25:D25, ...)。
我的问题是在第二个循环周期的顶部:
Dim result As Range, item As Range
Dim Arr() As String, sStr As String
sStr = "A3:D3","A7:D7","A15:D15","A25:D25"
Set result = Range(sStr)
i = 0
For Each item In result
ReDim Preserve Arr(i+1, 4)
Arr(i , 1) = item(1, 1).Value
Arr(i , 2) = item(1, 2).Value
Arr(i , 3) = item(1, 3).Value
Arr(i , 4) = item(1, 4).Value
i = i + 1
Next
第一个循环交互使用从 item -> Arr 传递的正确值,但在第二个循环中一切都出错了。查看监视列表中的 item.values 不正确,并且在 ReDim 语句处循环炸弹,运行时错误“9”:下标超出范围。它必须是范围索引和/或 ReDim 语句。
【问题讨论】: