Excel VBA设置要在自动过滤后复制的动态范围

在尝试根据参考编号应用过滤器后,我试图用来自寄存器表(“ TK_Register”)的数据更新表(“ EditEx”)。最多不会有20行。

我的问题与复制和粘贴有关。

如果要复制的数据在前20行中,它将复制并粘贴数据,但还会复制空白行直到第21行(在我的DBExtract范围内设置)。

如果要复制的数据在前20行之后,则会出现1004错误。过滤器确实发现有数据,但是我的复制代码只查看了前20行。

如何在不过滤空白行的情况下动态地进行复制过滤的行(如果将复制范围设置为“ A:K”,也会发生这种情况)? 谢谢

    Sub UpdateInputWithExisting()

    activeCell.Offset(0,1).Select
    Set RefID = activeCell

    Sheets("TK_Register").Range("A1:N1000").AutoFilter field:=12,Criteria1:=RefID

    Dim DbExtract,DuplicateRecords As Worksheet
    Set DbExtract = ThisWorkbook.Sheets("TK_Register")
    Set DuplicateRecords = ThisWorkbook.Sheets("EditEx")

    DbExtract.Range("A2:K21").SpecialCells(xlCellTypeVisible).copy
    DuplicateRecords.Cells(32,3).PasteSpecial xlPasteValues
    On Error Resume Next
    Sheets("TK_Register").ShowAllData
    On Error GoTo 0

    activeWorkbook.RefreshAll
    Sheets("EditEx").Select
    Range("B13").Select

    MsgBox ("Record Retrieved. Make your changes and ensure you click 'Save Changes' to update the Master Registers")

    End Sub
chenglong767 回答:Excel VBA设置要在自动过滤后复制的动态范围

我建议您将以下两行更改为(假设您的工作表中没有与表相邻的数据):

Sheets("TK_Register").Range("A1").CurrentRegion.AutoFilter field:=12,Criteria1:=RefID 

这:

DbExtract.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).copy
本文链接:https://www.f2er.com/3169326.html

大家都在问