Копировать и вставлять диапазон в следующие доступные столбцы

#excel #vba

#excel #vba

Вопрос:

У меня есть диапазон данных — B5: AG1004

В макросе мне нужно скопировать этот диапазон и вставить его в следующий доступный столбец. Выделенное пространство для вставки начинается с AX5.

В коде, который у меня есть сейчас, он копирует и вставляет диапазон в нужную (первую) позицию, однако, как только я снова нажимаю кнопку command, он повторно вставляется в то же самое место, т. Е. перезаписывает исходную вставку. Мне нужна следующая итерация для вставки в следующие доступные ячейки справа.

Вот мой код до сих пор;

 Sub columnmacro()

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

End Sub
  

Надеюсь, кто-нибудь сможет помочь, спасибо!

Комментарии:

1. Гарантировано ли что-то в первой строке того, что вы вставляете?

Ответ №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
  

Комментарии:

1. Это работает отлично! Спасибо за быстрое решение! Очень признателен!