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, вы получите пробелы. Таким образом, я выбрал вышеуказанный ответ в первую очередь.
редактировать исправленную опечатку