使用隐藏列和已过滤的行进行复制

时间:2014-05-26 09:48:25

标签: excel vba excel-2010

我有一个问题,从一个范围复制数据到另一个工作表。在复制范围中有一些隐藏的Columms和已过滤的行。 我的代码只会将可见的Coluumms和行复制到nother工作表中,但我应该将范围中的所有数据复制到另一个工作表中。

仅复制可见数据的我的代码

Worksheets("ANSICHT Komponente").Range("ANSICHT_Komponenten_Kostenanteil").Copy
'Einfügen auf dem Temp Daten Blatt
Worksheets("Temp_Daten").Range("B5:R56").PasteSpecial Paste:=xlPasteValues, _
      Operation:=xlNone, SkipBlanks:=False, Transpose:=False

希望你能帮助我复制范围内的所有数据。

Thx Trekschaf

1 个答案:

答案 0 :(得分:0)

如果您有一个包含隐藏行/列的表,并且您希望将/ pastespecial复制到另一个工作表并复制所有数据,则必须逐个单元格执行此操作。假设我们有 Sheet1:

before

运行此:

Sub try_1_by_1()
    Dim pets As Range
    Set pets = Sheets("Sheet1").Range("A1:D20")
    Dim r As Range
    For Each r In pets
        addy = r.Address
        r.Copy
        Sheets("Sheet2").Range(addy).PasteSpecial (xlValues)
    Next r
End Sub
无论过滤如何,

都会传输整个范围。

如果您使用直接转移而不是复制

,则可以避免循环
Sub try_another()
    Dim r1 As Range, r2 As Range
    Set r2 = Sheets("Sheet2").Range("A1:D20")
    Set r1 = Sheets("Sheet1").Range("A1:D20")
    r2.Value = r1.Value
End Sub