|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
06.12.2007, 13:09 | #1 |
Новичок
Джуниор
Регистрация: 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) и т.д. Буду благодарен за помощь |
06.12.2007, 13:48 | #2 |
Пользователь
Регистрация: 22.11.2007
Сообщений: 79
|
Просто транспонирование не подойдет? - это за 2 клика. А так, можно, конечно, и по 3 столбцам.
Последний раз редактировалось Alkaline; 06.12.2007 в 13:53. |
06.12.2007, 14:37 | #3 |
Старожил
Регистрация: 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
Чем шире угол зрения, тем он тупее.
|
07.12.2007, 09:42 | #4 |
Новичок
Джуниор
Регистрация: 06.12.2007
Сообщений: 2
|
Высказываю свою огромную благодарность.
А возможно ли теперь сделать обратное? |
07.12.2007, 10:47 | #5 |
Старожил
Регистрация: 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. Причина: Добавлено |
07.12.2007, 15:55 | #6 |
Форумчанин
Регистрация: 21.08.2007
Сообщений: 292
|
Ребята, плиз, берите свой код в тэги [code] КОД [./code] (только без точки внутри), неудобно же читать код!
|
07.12.2007, 16:16 | #7 |
Пользователь
Регистрация: 22.11.2007
Сообщений: 79
|
Да ладно! А мне вот удобно так, как в редакторе VBA. ";-) Видно, не привык еще.
А зачем ты точку во фразе [cоde] КОД [/cоde] поставил? PS: Этот пост лучше читать без смайликов. ":-) Всех с пятницей! |
07.12.2007, 17:30 | #8 |
Форумчанин
Регистрация: 21.08.2007
Сообщений: 292
|
OFFTOPIC
)) кого с пятницей... а кого и со второй трудовой неделей. Работаю без выходных с 28 Ноября и буду до 15 Декабря ((( командировка в Китай (( Уже тошнит от вида их еды, риса и палочек (( |
07.12.2007, 17:44 | #9 |
Пользователь
Регистрация: 22.11.2007
Сообщений: 79
|
Ух ты, прикольно! Ну, кушай пельмени, они и у нас привычные. И не закапывайся, Саид!
|
21.12.2007, 15:28 | #10 | |
Регистрация: 20.11.2007
Сообщений: 8
|
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
разбить строку | 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 |