【问题标题】:Excel - Copy and Paste a set range in the next empty row - not working when filteringExcel - 在下一个空行中复制并粘贴一组范围 - 过滤时不起作用
【发布时间】:2018-01-14 00:51:15
【问题描述】:

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

它运行良好,除非我在使用 AutoFilter 时运行它。 我没有收到任何错误,它什么也没做。

有什么想法吗?

Sub copy1()

Sheets("DATABASE").Select

Range("I" & ActiveCell.Row & ":S" & ActiveCell.Row).Copy Sheets("DATABASE").Range("I" & Rows.Count).End(xlUp).Offset(1, 0)


End Sub

【问题讨论】:

    标签: excel vba copy


    【解决方案1】:

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

    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
    

    参考资料:

    维什米什拉header to next visible row beneath after vb-assisted filtering

    达斯玛特TurnAutoFilterOn

    【讨论】:

    • 您好,非常感谢您的帮助。我已将您的 VBA 添加到我的文件中,它似乎可以工作,但它只是复制到第 10 行,它不会添加过去。我可以上传一个示例文件以便您查看吗?怎么样?
    猜你喜欢
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 2015-02-10
    相关资源
    最近更新 更多