Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос: объединение значений в столбцах в один столбец - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Макрос: объединение значений в столбцах в один столбец
denver2109 Дата: Пятница, 31.10.2014, 16:24 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый вечер.
Опять я со своими вопросами и проблемами, ну не дано мне программировать) Буду признателен помощи, не думаю что это впринципе сложно, но мой пытливый ум...уже совсем "вспотел".
Есть куча столбцов с запросами. Нужно сделать таким образом что бы макрос объединял все столбцы в один.
Т.е., имеем:
Столбец1 Столбец2 Столбце3 и т.д.
123 12 1
123 123 2
123 123
123
Нужно что бы после работы макроса получилось следующее:

Столбец1
123
123
123
12
123
123
123
1
2

Количество запросов в столбце разное, и количество столбцов достаточно велико.
Буду признателен. Спасибо заранее.
Тот код который я записал при помощи стандартного записчика макросов даже не буду публиковать......не совсем то.
 
Ответить
СообщениеДобрый вечер.
Опять я со своими вопросами и проблемами, ну не дано мне программировать) Буду признателен помощи, не думаю что это впринципе сложно, но мой пытливый ум...уже совсем "вспотел".
Есть куча столбцов с запросами. Нужно сделать таким образом что бы макрос объединял все столбцы в один.
Т.е., имеем:
Столбец1 Столбец2 Столбце3 и т.д.
123 12 1
123 123 2
123 123
123
Нужно что бы после работы макроса получилось следующее:

Столбец1
123
123
123
12
123
123
123
1
2

Количество запросов в столбце разное, и количество столбцов достаточно велико.
Буду признателен. Спасибо заранее.
Тот код который я записал при помощи стандартного записчика макросов даже не буду публиковать......не совсем то.

Автор - denver2109
Дата добавления - 31.10.2014 в 16:24
denver2109 Дата: Пятница, 31.10.2014, 16:36 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
строки примера съехали, прикрепляю файл
К сообщению приложен файл: __1.xls (18.0 Kb)
 
Ответить
Сообщениестроки примера съехали, прикрепляю файл

Автор - denver2109
Дата добавления - 31.10.2014 в 16:36
wild_pig Дата: Пятница, 31.10.2014, 17:02 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 518
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Обычно хотят из набора слов сделать запросы. В примере не совсем понятно что есть и что на выходе, даже совсем не понятно.
 
Ответить
СообщениеОбычно хотят из набора слов сделать запросы. В примере не совсем понятно что есть и что на выходе, даже совсем не понятно.

Автор - wild_pig
Дата добавления - 31.10.2014 в 17:02
Rioran Дата: Пятница, 31.10.2014, 17:18 | Сообщение № 4
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
denver2109, здравствуйте.

Если Вы хотели без всяких премудростей упаковать несколько столбцов в один - то попробуйте кнопку из вложения (код ниже).

[vba]
Код
Sub Rio_Structure()

Dim A As Long, B As Long, C As Long
Dim X As Long, ArrX()

C = Cells(1, 1).End(xlToRight).Column
If C < 2 Then Exit Sub

Application.ScreenUpdating = False

For X = 2 To C
     A = Cells(1, 1).End(xlDown).Row
     B = Cells(1, X).End(xlDown).Row
     ReDim ArrX(1 To B, 1)
     ArrX = Range(Cells(1, X), Cells(B, X)).Value
     Range(Cells(1, X), Cells(B, X)).Value = ""
     Cells(A + 1, 1).Resize(B, 1).Value = ArrX
Next X

Application.ScreenUpdating = True

End Sub
[/vba]
К сообщению приложен файл: Rio_Combine.xlsm (21.6 Kb)


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщениеdenver2109, здравствуйте.

Если Вы хотели без всяких премудростей упаковать несколько столбцов в один - то попробуйте кнопку из вложения (код ниже).

[vba]
Код
Sub Rio_Structure()

Dim A As Long, B As Long, C As Long
Dim X As Long, ArrX()

C = Cells(1, 1).End(xlToRight).Column
If C < 2 Then Exit Sub

Application.ScreenUpdating = False

For X = 2 To C
     A = Cells(1, 1).End(xlDown).Row
     B = Cells(1, X).End(xlDown).Row
     ReDim ArrX(1 To B, 1)
     ArrX = Range(Cells(1, X), Cells(B, X)).Value
     Range(Cells(1, X), Cells(B, X)).Value = ""
     Cells(A + 1, 1).Resize(B, 1).Value = ArrX
Next X

Application.ScreenUpdating = True

End Sub
[/vba]

Автор - Rioran
Дата добавления - 31.10.2014 в 17:18
denver2109 Дата: Пятница, 31.10.2014, 19:27 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Rioran, спасибо. Опять помогли) именно это мне и надо было, видимо объяснил коряво.
 
Ответить
СообщениеRioran, спасибо. Опять помогли) именно это мне и надо было, видимо объяснил коряво.

Автор - denver2109
Дата добавления - 31.10.2014 в 19:27
yurikfirst Дата: Пятница, 02.03.2018, 05:04 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Rioran, отличный вариант. Но есть небольшой баг. При пустых ячейках, которые не заканчивают столбцы, а в их содержании, пропускает их и сразу переходит на след столбец, в своем варианте решения, я просто выделил нужный диапазон, и пустые заменил на знак тире. Это помогло.


*****Меньше телодвижений - больше времени на отдых*****
 
Ответить
СообщениеRioran, отличный вариант. Но есть небольшой баг. При пустых ячейках, которые не заканчивают столбцы, а в их содержании, пропускает их и сразу переходит на след столбец, в своем варианте решения, я просто выделил нужный диапазон, и пустые заменил на знак тире. Это помогло.

Автор - yurikfirst
Дата добавления - 02.03.2018 в 05:04
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!