excel 特殊单元格(xlCellTypeVisible)是否不再重要?

gudnpqoy  于 2023-03-09  发布在  其他
关注(0)|答案(1)|浏览(168)

从我记事起,如果我只想将过滤列中的可见值复制到新位置,我总是使用Range.SpecialCells(xlCellTypeVisible)。我一直认为,如果我 * 不 * 指定.SpecialCells(xlCellTypeVisible),它将复制列中的所有值。
例如,Sheet 1的A列中有30个值,我应用了自动筛选,因此只有4行可见。我将这样做,以便只将这4个值复制到Sheet 2中:

Sheets("Sheet1").Range("A2:A31").SpecialCells(xlCellTypeVisible).Copy Sheets("Sheet2").Range("A1")

现在我有一个场景,我想复制所有30个值,而不管过滤器是否有效。我想我可以这样做:

Sheets("Sheet1").Range("A2:A31").Copy Sheets("Sheet2").Range("B1")

...但是没有,这仍然只复制了4个可见行!
是我疯了,还是微软在某个时候废弃了.SpecialCells(xlCellTypeVisible)?
除了迭代列中的所有行之外,对于如何复制整个列而不管过滤器是否有效,有什么建议吗?
我使用的是Office 365 Excel,版本为2208。

nxowjjhe

nxowjjhe1#

若要复制整列而不管是否存在筛选器,可以将范围的值分配到array中,然后将array的值分配到新的范围中。
请注意,您需要指定要分配值的范围

Dim var As Variant
    
var = Sheets("Sheet1").Range("A2:A31").Value2
Sheets("Sheet2").Range("A1:A30").Value2 = var

相关问题