将过滤范围的值复制到数组似乎没有问题:然后数组包含来自过滤和未过滤单元格的值。但是,当我将数组的内容复制回过滤范围时,结果对我来说是难以理解的。
这是我的代码:
Sub test()
Dim rangecopy() As Variant
rangecopy() = Range(Cells(2, 1), Cells(14, 3)).Value
For c = LBound(rangecopy, 1) To UBound(rangecopy, 1)
rangecopy(c, 1) = c
rangecopy(c, 2) = c * 10
rangecopy(c, 3) = c * 100
Next
Range(Cells(2, 1), Cells(14, 3)).Value = rangecopy()
End Sub
它应该给出以下结果。在这里,当宏将数组复制到该范围时,该范围未过滤。
如果范围按 D 列过滤(“NO”被过滤掉),结果如下所示:
首先,过滤的单元格不会更新。然后,B 列中的大多数单元格从数组的第一列 (4, 5, 6) 中获取值,而其他一些单元格从数组的第二列 (10) 中正确获取值。最后两行填充了#N/A 错误。这应该这样工作吗?我正在使用 Office 2010。