Excel 宏复制/粘贴范围到下一个可用行

问题描述 投票:0回答:1

学习 Excel,我无法运行此代码的任何修改。在“Q145:AE211”中,我有每次都会更改的数据。每次更改时,我计划首先将其复制到“Q1:AE1”中,然后为可见性目的跳过一个单元格。因此,如果宏被触发(通过按钮),则首先将数据粘贴到“Q1:AE1”中,然后,如果再次按下按钮,并且如果单元格“繁忙”,则“AF1:AS1”中的下一个单元格等等..

    Range("Q145:AE211").Select
    Selection.Copy
    
    If IsEmpty(Range("Q1:AE1")) Then

    Range("Q1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Else
    Range("Q1" & Rows.Count).End(xlUp).Offset(17).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

End If

    Application.CutCopyMode = False
excel vba
1个回答
0
投票

如果我正确理解了你的问题,请尝试下一个快速方法。它将粘贴在最后一列之后。不需要格式,使用数组是最快的粘贴方式:

Sub copyAfterTheLastColumn()
 Dim lastCol As Long, arr
 
 arr = Range("Q145:AE211").value
 lastCol = cells(1, columns.count).End(xlToRight).column + 1
 
 Range(1, lastCol).Resize(UBound(arr), UBound(arr, 2)).value = arr
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.