Знатокам Exel

stilet78

Не обязательно в экселе, любая стандартная прога подойдет...
Подскажите плз, как в сделать следущее :
есть столбец из 1000 чисел. нужно сделать 6 столбцов так, чтобы числа поочередно записывались по горизонтали по 6 штук в ряду, чтобы получилась матрица 6х167

oleg701

Можно извратиться формулами, но я бы сделал цикл на VBA.

stilet78

я бы тоже сделал на VBA, если бы умел на нем писать

oleg701

Там ничего сложного.
Например.
Range("A1:A167").Select
Selection.Copy
Range("B1").Select
ActiveSheet.Paste
Так 6 раз в твоем случае, если не знаешь как писать цикл.
Вообще хороший механизм - запись макросов.
Включаешь запись, делаешь чего-нибудь, выключаешь запись.
Смотришь код - все довольно понятно получается.

stilet78



Range("A1:A167").Select
Selection.Copy
Range("B1").Select
ActiveSheet.Paste


не совсвем так, мне надо чтобы А1:А6 становились B1,C1,D1,E1,F1,G1
а как в макросах делать cделать так чтобы А[i] в Range("A1:A167").Select выделялась?

stilet78

Всё, разобрался, сделал такой цикл

k = 1
For i = 1 To 50
For j = 2 To 7
Cells(k, 1).Select
Selection.Copy Destination:=Cells(i, j)
k = k + 1
Next j
Next i

oleg701

Я бы тебе посоветовал использовать транспонирование, например так:
    Range("A1:A6").Select
    Selection.Copy
    Range("B1").Select
    Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Либо транспонировать весь столбец, и из получившейся строки вырезать по 6 элементов
Хотя пофиг на самом деле. Работает, и славно.
Оставить комментарий
Имя или ник:
Комментарий: