我有下面的代码在筛选后将数据从一个工作表复制并粘贴到另一个工作表
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列。我需要复制并贴上所有可见列。
1条答案
按热度按时间hmae6n7t1#
SpecialCells(xlCellTypeVisible)
正在中断,返回名为Areas的可见单元格块的范围。原始代码仅粘贴第一个Area。Range.PasteSpecial
只粘贴可见单元格。通过删除SpecialCells(xlCellTypeVisible)
,将粘贴所有可见行。