Написание макроса для многократного использования функции транспонирования - PullRequest
0 голосов
/ 12 марта 2009

Я пытаюсь переместить строки значений в столбец в Excel. Функция транспонирования работает хорошо, но перемещает только одну строку за раз. Я хотел бы получить макрос, который преобразует 173 строки данных из трех столбцов в один столбец. Пожалуйста, смотрите пример ниже. Заранее спасибо за любую помощь.

Ряды:

98,058  98,058  98,314
82,362  82,684  83,326
93,410  93,479  93,761

Колонки:

98,058
98,058
98,314
82,362
82,684
83,326
93410
93479
93761

1 Ответ

1 голос
/ 12 марта 2009

Следующие данные загрузят данные из CurrentRegion A1 в массив и вставят в один столбец, начиная с A5.

Я предполагаю, что данные являются числовыми, непрерывными и что это одноразовое, а не упражнение, которое, возможно, придется повторить для наборов данных разных размеров. Если ваши данные не являются смежными или не связаны пустыми ячейками, то вместо этого вы можете жестко запрограммировать диапазон.

Private Sub transposeRows()
Dim inputRange As Variant
Dim myArray() As Long
Dim x As Long
Dim testCell As Range

'Get the range of data to copy'
Set inputRange = Range("A1").CurrentRegion

'Resize array to fit'
ReDim myArray(inputRange.Count - 1)

'Fill up array with data'
For Each testCell In inputRange
    myArray(x) = testCell
    x = x + 1
Next testCell

'Fill destination range'
Range("A5:A" & UBound(myArray) + 5) = WorksheetFunction.Transpose(myArray)

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...