我有一个超过2000行的Excel文件。 我经常要复制给定行的一些单元格并将其放在底部,添加一行新数据,因此我编写了这个简单的VBA代码(链接到一个热键),它将范围从第一列复制到第一列。活动行到底部的第一个空行。
它运行良好,除非我在使用AutoFilter时运行它。 我没有得到任何错误,它只是没有做任何事情。
有什么想法吗?
{{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