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

Вход

Регистрация

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

 

= Мир MS Excel/Сортировка столбцов макросом - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Сортировка столбцов макросом
Artem2292 Дата: Пятница, 02.10.2020, 15:47 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

2010, 2019, 365
Добрый день, форумчане!
Нужна ваша помощь :)
Периодически делаю определенную выгрузку таблиц из системы для того, чтобы в дальнейшем ее использовать для обновления данных другой excel таблицы. Суть вопроса следующая - каждый раз при формировании выгрузки, нужные мне столбцы выгружаются в хаотичном порядке, при этом название столбцов из выгрузки в выгрузку одинаковое. Т.е., например сегодня в выгрузке всего 10 столбцов, но из них мне нужны только столбец 2, 3,5 и 7, а завтра в выгрузке уже 12 столбцов и нужные мне столбцы теперь под номерами 2,5, 8 и 11. Можно ли сделать так, чтобы интересующие меня столбцы через макрос ставить в начало таблицы в нужном мне формате?
Ломаю голову, но тк с VBA на Вы, ничего не выходит :(
заранее спасибо!
К сообщению приложен файл: 8682539.xlsx (12.1 Kb)
 
Ответить
СообщениеДобрый день, форумчане!
Нужна ваша помощь :)
Периодически делаю определенную выгрузку таблиц из системы для того, чтобы в дальнейшем ее использовать для обновления данных другой excel таблицы. Суть вопроса следующая - каждый раз при формировании выгрузки, нужные мне столбцы выгружаются в хаотичном порядке, при этом название столбцов из выгрузки в выгрузку одинаковое. Т.е., например сегодня в выгрузке всего 10 столбцов, но из них мне нужны только столбец 2, 3,5 и 7, а завтра в выгрузке уже 12 столбцов и нужные мне столбцы теперь под номерами 2,5, 8 и 11. Можно ли сделать так, чтобы интересующие меня столбцы через макрос ставить в начало таблицы в нужном мне формате?
Ломаю голову, но тк с VBA на Вы, ничего не выходит :(
заранее спасибо!

Автор - Artem2292
Дата добавления - 02.10.2020 в 15:47
Hugo Дата: Пятница, 02.10.2020, 16:45 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Вообще столбцы можно сортировать так же, как и строки.
Но тут другой случай, одинаково они не становятся, можно просто тупо сперва макросом удалить все лишние столбцы, а оставшиеся отсортировать.
А вообще зачем это всё, если и так используете макрос? Сразу макросом и оперируйте с столбцами, найденными по заголовку, их двигать это лишняя работа.
P.S. Или вот алгоритм - ищите по строке эти 4 названия, каждому ставите впереди цифру. Можно нумерацию 1-4. Далее сортируете диапазон, получите что-то типа
1.Название 2.№ оборудования 3.Рег.№ 4.Статус Год выпуска Дата покупки оборудование
Теперь можно цифры убить, ну или оставить если уже не важно.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD


Сообщение отредактировал Hugo - Пятница, 02.10.2020, 17:23
 
Ответить
СообщениеВообще столбцы можно сортировать так же, как и строки.
Но тут другой случай, одинаково они не становятся, можно просто тупо сперва макросом удалить все лишние столбцы, а оставшиеся отсортировать.
А вообще зачем это всё, если и так используете макрос? Сразу макросом и оперируйте с столбцами, найденными по заголовку, их двигать это лишняя работа.
P.S. Или вот алгоритм - ищите по строке эти 4 названия, каждому ставите впереди цифру. Можно нумерацию 1-4. Далее сортируете диапазон, получите что-то типа
1.Название 2.№ оборудования 3.Рег.№ 4.Статус Год выпуска Дата покупки оборудование
Теперь можно цифры убить, ну или оставить если уже не важно.

Автор - Hugo
Дата добавления - 02.10.2020 в 16:45
Artem2292 Дата: Пятница, 02.10.2020, 20:04 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

2010, 2019, 365
Hugo, а не подскажете, куда копать?)
Вроде нашел похожий макрос в соседней теме http://www.excelworld.ru/forum/10-45675-1
Но как адаптировать для свой задачи - не понимаю.. %)
 
Ответить
СообщениеHugo, а не подскажете, куда копать?)
Вроде нашел похожий макрос в соседней теме http://www.excelworld.ru/forum/10-45675-1
Но как адаптировать для свой задачи - не понимаю.. %)

Автор - Artem2292
Дата добавления - 02.10.2020 в 20:04
Hugo Дата: Пятница, 02.10.2020, 22:56 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Копать так:
1. как определить нужный диапазон
2. как пройтись по заголовкам, найти нужные, добавить в название цифры.
3. сортировка столбцов, ну это уже нашли, хотя это можно просто записать рекордером и использовать чуть подправив.

В чём видите проблему?


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеКопать так:
1. как определить нужный диапазон
2. как пройтись по заголовкам, найти нужные, добавить в название цифры.
3. сортировка столбцов, ну это уже нашли, хотя это можно просто записать рекордером и использовать чуть подправив.

В чём видите проблему?

Автор - Hugo
Дата добавления - 02.10.2020 в 22:56
Kuzmich Дата: Суббота, 10.10.2020, 00:40 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 713
Репутация: 157 ±
Замечаний: 0% ±

Excel 2003
Цитата
сделать так, чтобы интересующие меня столбцы через макрос ставить в начало таблицы в нужном мне формате?

Для выгрузка1
[vba]
Код
Sub iPereSort()         'запускаем при активном листе Лист1
Dim i As Long
Dim iLastRow As Long
With Worksheets("Лист2")
   .Cells.Clear
For i = 0 To 9    'перегруппировываем 10 столбцов
   Range(Cells(1, Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)(i)), _
     Cells(11, Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)(i))).Copy .Cells(1, Array(5, 1, 2, 7, 3, 8, 4, 6, 9, 10)(i))
Next i
.Activate
End With
End Sub
[/vba]
 
Ответить
Сообщение
Цитата
сделать так, чтобы интересующие меня столбцы через макрос ставить в начало таблицы в нужном мне формате?

Для выгрузка1
[vba]
Код
Sub iPereSort()         'запускаем при активном листе Лист1
Dim i As Long
Dim iLastRow As Long
With Worksheets("Лист2")
   .Cells.Clear
For i = 0 To 9    'перегруппировываем 10 столбцов
   Range(Cells(1, Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)(i)), _
     Cells(11, Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)(i))).Copy .Cells(1, Array(5, 1, 2, 7, 3, 8, 4, 6, 9, 10)(i))
Next i
.Activate
End With
End Sub
[/vba]

Автор - Kuzmich
Дата добавления - 10.10.2020 в 00:40
  • Страница 1 из 1
  • 1
Поиск:

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