簡體   English   中英

Excel-將設置的范圍復制並粘貼到下一個空行中-過濾時不起作用

[英]Excel - Copy and Paste a set range in the next empty row - not working when filtering

我有一個超過2000行的Excel文件。 我經常必須復制給定行的某些單元格並將其放在底部,添加新的數據行,因此我編寫了此簡單的VBA代碼(鏈接到熱鍵),將代碼的范圍從I列復制到S列活動行到底部的第一個空行。

除非我在使用“自動篩選”時運行它,否則它運行良好。 我沒有任何錯誤,它什么也沒做。

有任何想法嗎?

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

不知道這有多健壯,請嘗試以下方法:

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

參考文獻:

Vb輔助過濾后,將 Vish Mishra 標頭移到下面的下一個可見行

Datsmart TurnAutoFilterOn

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM