excel VBA仅复制行到隐藏行

cxfofazt  于 2022-12-01  发布在  其他
关注(0)|答案(1)|浏览(250)

我有下面的代码在筛选后将数据从一个工作表复制并粘贴到另一个工作表

For j = 1 To 4
     
     ## Open both workbooks first:
     Set x = Workbooks.Open(path & "KFRs\" & sourceFileName)
     x.Activate
     Sheets("GL Data").Activate
     lr = Cells(Rows.Count, 1).End(xlUp).Row
              
     
     Set y = Workbooks.Open(path & "KFRs\" & fileNames(j))
     
     x.Sheets("GL Data").Range("A1:P" & lr).AutoFilter Field:=15, Criteria1:=strNames(j)

     'Now, copy what you want from x:
     x.Sheets("GL Data").Range("A1:L" & lr).SpecialCells(xlCellTypeVisible).Copy
     y.Sheets("GL Data").Cells(1, 1).PasteSpecial
     Application.CutCopyMode = False
     
    Next j

当我看到要贴上的目的档案时,我只会看到列,直到看到隐藏列为止。例如,如果前4列是连续的,之后有几个隐藏列,它只会复制前4列。我需要复制并贴上所有可见列。

hmae6n7t

hmae6n7t1#

SpecialCells(xlCellTypeVisible)正在中断,返回名为Areas的可见单元格块的范围。原始代码仅粘贴第一个Area。
Range.PasteSpecial只粘贴可见单元格。通过删除SpecialCells(xlCellTypeVisible),将粘贴所有可见行。

x.Sheets("GL Data").Range("A1:L" & lr).Copy

相关问题