【问题标题】:Copy & Paste range into next available columns将范围复制并粘贴到下一个可用列中
【发布时间】:2020-10-27 19:46:29
【问题描述】:

我有一系列数据 - 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

希望有人能帮忙,谢谢!

【问题讨论】:

  • 你粘贴的第一行有保证吗?

标签: excel vba


【解决方案1】:

试试这个:

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

【讨论】:

  • 这完美!感谢您的及时解决!非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-01
  • 2015-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-27
  • 1970-01-01
相关资源
最近更新 更多