Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 06.12.2007, 13:09   #1
Joyst1k
Новичок
Джуниор
 
Регистрация: 06.12.2007
Сообщений: 2
По умолчанию Строку сделать столбцом

Есть столбец со значениями как его сделать строкой? Т.е. развернуть с вертикали на горизонталь.
Если это возможно то после каждых 3-х значений делать перенос на новую строку.

Были значения A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
А после A1(A1) A2(B1) A3(C1) A4(A2) A5(B2) A6(C2) A7(A3) A8(B3) и т.д.
Буду благодарен за помощь
Joyst1k вне форума
Старый 06.12.2007, 13:48   #2
Alkaline
Пользователь
 
Регистрация: 22.11.2007
Сообщений: 79
По умолчанию

Просто транспонирование не подойдет? - это за 2 клика. А так, можно, конечно, и по 3 столбцам.

Последний раз редактировалось Alkaline; 06.12.2007 в 13:53.
Alkaline вне форума
Старый 06.12.2007, 14:37   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Так пойдет?

Sub Transp_3()
Dim Dan()
Dim A As Long, i As Long, j As Long, x As Integer, y As Long
A = ActiveSheet.Range("A65536").End(xlU p).Row
x = Int(A / 3 + 1)
ReDim Dan(1 To A)
For i = 1 To A
Dan(i) = Cells(i, 1)
Next i
Range(Cells(1, 1), Cells(A, 1)).ClearContents
y = 1
For j = 1 To x
For i = 1 To 3
Cells(j, i) = Dan(y)
y = y + 1
If y > A Then Exit Sub
Next i
Next j
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 07.12.2007, 09:42   #4
Joyst1k
Новичок
Джуниор
 
Регистрация: 06.12.2007
Сообщений: 2
По умолчанию

Высказываю свою огромную благодарность.
А возможно ли теперь сделать обратное?
Joyst1k вне форума
Старый 07.12.2007, 10:47   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Обратно:

Sub ReTrans_3()
Dim A()
Dim i As Long, LastRow As Long, x As Long, j As Long
LastRow = ActiveSheet.Range("A65536").End(xlU p).Row
ReDim A(1 To LastRow * 3)
x = 1
For i = 1 To LastRow
For j = 1 To 3
A(x) = Cells(i, j)
x = x + 1
Next j
Next i
Range(Range("A1"), Cells(LastRow, 3)).ClearContents
For i = 1 To 3 * LastRow
Cells(i, 1) = A(i)
Next i
End Sub

Необходимо заметить, что оба макроса будут корректно работать, при условии, что в столбце "А" под таблицей далее пусто.
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 07.12.2007 в 10:49. Причина: Добавлено
SAS888 вне форума
Старый 07.12.2007, 15:55   #6
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

Ребята, плиз, берите свой код в тэги [code] КОД [./code] (только без точки внутри), неудобно же читать код!
Pavel55 вне форума
Старый 07.12.2007, 16:16   #7
Alkaline
Пользователь
 
Регистрация: 22.11.2007
Сообщений: 79
По умолчанию

Да ладно! А мне вот удобно так, как в редакторе VBA. ";-) Видно, не привык еще.

А зачем ты точку во фразе [cоde] КОД [/cоde] поставил?

PS: Этот пост лучше читать без смайликов. ":-)

Всех с пятницей!
Alkaline вне форума
Старый 07.12.2007, 17:30   #8
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

OFFTOPIC
)) кого с пятницей... а кого и со второй трудовой неделей. Работаю без выходных с 28 Ноября и буду до 15 Декабря ((( командировка в Китай (( Уже тошнит от вида их еды, риса и палочек ((
Pavel55 вне форума
Старый 07.12.2007, 17:44   #9
Alkaline
Пользователь
 
Регистрация: 22.11.2007
Сообщений: 79
По умолчанию

Ух ты, прикольно! Ну, кушай пельмени, они и у нас привычные. И не закапывайся, Саид!
Alkaline вне форума
Старый 21.12.2007, 15:28   #10
Natusya
 
Регистрация: 20.11.2007
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Joyst1k Посмотреть сообщение
Есть столбец со значениями как его сделать строкой? Т.е. развернуть с вертикали на горизонталь.
Если это возможно то после каждых 3-х значений делать перенос на новую строку.

Были значения A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
А после A1(A1) A2(B1) A3(C1) A4(A2) A5(B2) A6(C2) A7(A3) A8(B3) и т.д.
Буду благодарен за помощь
А как сделать, чтобы трансонировать таким же точно образом столбец "I"? Можно на новый лист.
Natusya вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разбить строку Ceprey Общие вопросы C/C++ 10 24.12.2009 20:47
Как подставить строку в код? Voyager-69 Общие вопросы Delphi 4 09.05.2008 00:08
Считать строку XATAB Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 10.04.2008 21:18
Проблема со столбцом подстановок. Hellell Microsoft Office Access 1 08.01.2008 02:13
как сделать в memo строку не 256 символов, а 1024 например. Alar Компоненты Delphi 0 29.10.2006 18:46