【问题标题】:VBA copying rows only till a hidden rowVBA 只复制行直到隐藏行
【发布时间】:2022-11-30 15:26:55
【问题描述】:

我有以下代码可以在过滤后将数据从一张纸复制并粘贴到另一张纸上

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 行。我需要复制和粘贴所有可见的行。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    SpecialCells(xlCellTypeVisible) 正在打破返回一系列称为区域的可见单元格块。原代码只是粘贴第一个Area。

    Range.PasteSpecial 只粘贴可见的单元格。通过删除 SpecialCells(xlCellTypeVisible),将粘贴所有可见行。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-24
      • 2020-12-14
      相关资源
      最近更新 更多