#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. Это работает отлично! Спасибо за быстрое решение! Очень признателен!