首页 > 解决方案 > 将范围复制并粘贴到下一个可用列中

问题描述

我有一系列数据 - B5:AG1004

在宏中,我需要复制此范围并将其粘贴到下一个可用列中。用于粘贴的专用空间始于 AX5。

在我现在拥有的代码中,它将范围复制并粘贴到所需的(第一个)位置,但是一旦我再次单击命令按钮,它就会重新粘贴到完全相同的位置,即覆盖原始粘贴。我需要下一次迭代将下一个可用单元格粘贴到右侧。

到目前为止,这是我的代码;

Sub columnmacro()

  ActiveSheet.Range("B5:AG1004").Copy
  Sheets("Optimise").Range("ax5").End(xlToLeft).Offset(, 1).PasteSpecial xlValues
  Application.CutCopyMode = False

End Sub

希望有人能帮忙,谢谢!

标签: excelvba

解决方案


尝试这个:

Sub SubColumnMacro()
    
    'Declarations.
    Dim RngSource As Range
    Dim RngDestination As Range
    
    'Setting variables.
    Set RngSource = ActiveSheet.Range("B5:AG1004")
    Set RngDestination = Sheets("Optimise").Range("AX5").Resize(RngSource.Rows.Count, RngSource.Columns.Count)
    
    'Finding the next avaiable spot on the right to report RngSource values.
    Do Until Excel.WorksheetFunction.CountBlank(RngDestination) = RngDestination.Cells.Count
        Set RngDestination = RngDestination.Offset(0, 1)
    Loop
    
    'Reporting Rngsource values in RngDestination.
    RngDestination.Value = RngSource.Value
    
End Sub

推荐阅读