繁体   English   中英

VBA 用于仅填充可见单元格

[英]VBA for populating only visible cells

我在 Sheet2 上有一行单元格 A1:G1,我希望这些值在 Sheet1 列 A:G 上,但只在可见行上。 我知道如何通过仅选择可见单元格并从 Sheet2 粘贴值来做到这一点。 但是我有很多行,而且速度非常慢。 我尝试从 Sheet2 上的单元格 A1:G1 创建一个数组并将其设为二维数组,然后在 Sheet1 上选择范围并在工作表中设置值,但我根本无法使代码工作。 你会建议什么其他方式?

Dim Arr() As Variant
Dim 2DArr() As Variant

Sheet1.range(cells(1,8),cells(last_row,8). select
activecell.formulaR1C1="=AGGREGATE(3,5,@columnA)"
Arr = Sheet2.Range("A1:G5")
for i=1 to last_row
     if cell(i,8)=1 then
        2DArr(i)=Arr
     End If
Next i

Sheet1.range("A1:G900000")=2DArr

我承认这是一个烦人的问题:Excel VBA 的范围没有Visible属性。 相反,它有一个Hidden属性,它以完全相反的方式工作,正如您从这个简单示例中看到的那样:

' instead of if RAnge(A1).Visible, you should do:
if NOT(RAnge(A1).Hidden)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM