Сейчас я работаю с Excel, где создаю несколько макросов, чтобы облегчить мне жизнь. Я ищу немного кода, который может переместить все данные из столбца B под столбцом A. Проблема с кодом заключается в том, что объем данных в столбцах всегда различен. Поэтому место вставки всегда будет другим. Я просто ищу код, чтобы переместить его на x вниз и на один столбец влево.

Скриншот:

1 ответ1

0
Sub moveData()

Dim rowAcount As Long
Dim rowBcount As Long

Dim currSheet As Worksheet
Set currSheet = ActiveSheet

currSheet.Range("A1").End(xlDown).Select
rowAcount = ActiveCell.Row
rowAcount = rowAcount + 1

currSheet.Range("B1").End(xlDown).Select
rowBcount = ActiveCell.Row

currSheet.Range("B1:B" & rowBcount).Copy _
    Destination:=currSheet.Range("A" & rowAcount & ":A" & (rowAcount + rowBcount))

Columns(2).Delete

End Sub

ВНИМАНИЕ: Если у вас есть какие-либо пробелы в ваших данных, вы должны использовать что-то вроде следующего, чтобы выбрать свои наборы данных:

rowAcount = currSheet.Range("A1").CurrentRegion.Rows.Count
rowBcount = currSheet.Range("B1").CurrentRegion.Rows.Count

Но это копирует общее количество строк в листе, и если строка B содержит больше данных, чем строка A, вы получите пробелы. Таким образом, я выбрал вышеуказанный ответ в первую очередь.

редактировать исправленную опечатку

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .