复制和粘贴错误

时间:2013-03-10 02:04:00

标签: excel excel-vba vba

是否有某些内容可能导致仅在某些文档中选择并复制范围 include 隐藏列?

这是大部分代码:

Set rngAcData = .Range(.Cells(1, 1), .Cells(bottomMostRow, rightMostColumn))
rngAcData.Select
Selection.Copy
Sheets(".....").Select
Range("H2").Select
ActiveSheet.Paste

请注意,这适用于大约98%的类似格式的文档。但在同一份文件中。它将反复包含隐藏的列。我已经尝试手动完成它,我得到了相同的结果。我尝试将.SpecialCells(xlCellTypeVisible)附加到范围对象上,导致以下高级过滤器命令出现错误run time error: 1004 database or table range is not valid.

2 个答案:

答案 0 :(得分:1)

尝试以下代码:

Sub test()
    Set rngAcData = .Range(.Cells(1, 1), .Cells(bottomMostRow, rightMostColumn))
    'Set rngAcData = .Range("A1").CurrentRegion  'can use this alternatively
    rngAcData.Copy Sheets(".....").Range("H2")  ' avoid using select in vba
   ' Selection.Copy  ' not needed
    'Sheets(".....").Select  ' not needed
   ' Range("H2").Select  ' not needed
   ' ActiveSheet.Paste  ' not needed
End Sub

答案 1 :(得分:0)

如果你要做的就是复制并粘贴一个Range,同时排除隐藏的单元格,那么你就非常接近了!试试这个:

Public Sub CopyVisibleCells()
    Dim rngAcData As Range
    Set rngAcData = Range(Cells(1, 1), Cells(5, 5))
    rngAcData.SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Sheet2").Range("H2")
End Sub

考虑范围A1E5,复制可见的单元格,然后粘贴到H2的{​​{1}}。您可以对其进行修改以满足您的特定需求。

<强> BEFORE

enter image description here

<强> AFTER

enter image description here