Vba 将筛选的行从文件复制到打开的工作簿

Vba 将筛选的行从文件复制到打开的工作簿,vba,excel,Vba,Excel,我正试图打开一个当前关闭的工作簿,根据Sel_RC(A2为页眉)过滤列a,只复制可见行并粘贴到此工作簿,工作表“LRD” 除了生产线外,一切正常: Set rngSource = wsSource.Range(wsSource.Range("A2:CY2"), wsSource.Range("A2:CY2").End(xlDown)).SpecialCells(xlCellTypeVisible) 我遇到的问题是,我无法让源范围仅选择可见的过滤行。我尝试了上面的组合——当前的组合将第2行复制到

我正试图打开一个当前关闭的工作簿,根据Sel_RC(A2为页眉)过滤列a,只复制可见行并粘贴到此工作簿,工作表“LRD”

除了生产线外,一切正常:

Set rngSource = wsSource.Range(wsSource.Range("A2:CY2"), wsSource.Range("A2:CY2").End(xlDown)).SpecialCells(xlCellTypeVisible)
我遇到的问题是,我无法让源范围仅选择可见的过滤行。我尝试了上面的组合——当前的组合将第2行复制到目标工作表的每一行。我在以下方面也取得了类似的半成功:

Set rngSource = wsSource.Range("A:CY")
已正确复制和粘贴,但忽略了筛选器(即仅复制源中的所有行)


谢谢。

仅将区域拆分为左上角和右下角单元格,然后复制可见单元格:

Set rngSource = wsSource.Range(wsSource.Range("A2"), 
    wsSource.Range("CY2").End(xlDown)).SpecialCells(xlCellTypeVisible)

rngSource.Copy

wsDest.Activate
rngDest.Cells(1, 1).Select
ActiveSheet.Paste


您必须迭代rngSource中的区域。rngDest.Value=rngSource.Value不适用于复合范围。谢谢Andy,这很有意义。然而,它在rngDest(1,1)上下降。选择行,表示“范围类的选择方法失败”。有什么想法吗?我两种方法都试过了,结果都是一样的错误。它似乎还从源代码栏复制了最后2行?再次感谢您的帮助顺便问一下,CY2是过滤范围的一部分吗?此列是否包含一些空白单元格,导致
End()
失败?逐步完成代码并检查范围。当然,移动了“End()”以解决CY中可能出现的空白(A中没有)。仍在“rngDest.Cells(1,1)”上获取错误。尽管选择了“行”。您可能需要在
rngDest.Cells(1,1)之前激活
。选择
。我补充了这句话。甚至激活工作簿。
Set rngSource = wsSource.Range(wsSource.Range("A2"), 
    wsSource.Range("CY2").End(xlDown)).SpecialCells(xlCellTypeVisible)

rngSource.Copy

wsDest.Activate
rngDest.Cells(1, 1).Select
ActiveSheet.Paste
Set rngSource = wsSource.Range(wsSource.Range("A2"), 
    wsSource.Range("CY2").End(xlDown))

rngSource.SpecialCells(xlCellTypeVisible).Copy

wsDest.Activate
rngDest.Cells(1, 1).Select
ActiveSheet.Paste