Excel - 复制并粘贴下一个空行中的设置范围 - 过滤时不起作用

时间:2018-01-13 16:14:51

标签: excel vba copy

我有一个超过2000行的Excel文件。 我经常要复制给定行的一些单元格并将其放在底部,添加一行新数据,因此我编写了这个简单的VBA代码(链接到一个热键),它将范围从第一列复制到第一列。活动行到底部的第一个空行。

它运行良好,除非我在使用AutoFilter时运行它。 我没有得到任何错误,它只是没有做任何事情。

有什么想法吗?

{{1}}

1 个答案:

答案 0 :(得分:0)

不确定这是多么强大,但请尝试以下方法:

Sub copy1()

Dim wb As Workbook
Dim ws As Worksheet

Set wb = ThisWorkbook
Set ws = wb.Worksheets("DATABASE")

With ws

    Dim targetrange As Range

    If .AutoFilterMode Then
        Set targetrange = .Range("I" & .AutoFilter.Range.Offset(.AutoFilter.Range.Rows.Count, 0).Row)    
    Else
       Set targetrange = .Range("I" & Rows.Count).End(xlUp).Offset(1, 0)
    End If

    .Range("I" & ActiveCell.Row & ":S" & ActiveCell.Row).Copy targetrange

End With

End Sub

参考文献:

Vish Mishra header to next visible row beneath after vb-assisted filtering

Datsmart TurnAutoFilterOn