提问人:Greengruenvert 提问时间:10/20/2023 最后编辑:Ken WhiteGreengruenvert 更新时间:10/20/2023 访问量:80
将数组写入已筛选的范围
Write Array to Range that is filtered
问:
我有一个数组,我想把它写到工作表的一列中。
通常我只是这样做
rngRangeObject = varArray
但是,如果列上有一个活动的过滤器,则结果是......意外。
如果您在没有过滤器的工作表上运行下面的示例代码,则它可以正常工作。 如果为第 1 列添加筛选器,以便隐藏单元格 A4、A7、A10、A13、A16 中的值,则会在(可见)单元格中获得以下结果。过滤后的细胞保持不变:
我的第一个想法是它链接了不同的区域,并且由于某种原因,Excel 总是会在每个区域重新开始,但事实并非如此。A5:A6 是一个区域,两个单元格都填充有“1”。 A14:A15 是一个区域,它充满了 1 和 2。
有人有解释和快速方法在不删除过滤器的情况下将数组写入过滤的列(包括过滤的单元格)吗?
有趣的事实:如果您在不使用过滤器的情况下隐藏这些行,则没有问题。
示例代码如下:
Sub WriteArrayToRange()
Dim varArr(1 To 18, 1 To 1) As Variant
Dim i As Integer
Dim objRng As Range
For i = 1 To 18
varArr(i, 1) = i
Next
Set objRng = Range("A1:A18")
objRng = varArr
End Sub
答: 暂无答案
评论
ListObject