0 / 0 / 0
Регистрация: 08.07.2017
Сообщений: 7
1

VBA Excel: Как разделить выделенный диапазон на области?

17.07.2017, 10:22. Показов 3439. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Поискал, погуглил но что то не нашел нужного. Возможно с ключевыми словами не угадал. Поэтому обращаюсь к вам.
Хочу сделать автоформат таблицы по своим параметрам. Сейчас основной тупик в том как разделить выделенный диапазон на области, т.е. область данных (значения, формулы и т.д.), область заголовка (одна или более строк), область подписей (обычно слева построчно), область итога по строкам, область итога по столбцам.
Хотелось бы знать адреса всех этих областей и манипулировать ими уже как мне нужно.
Начинаю с CurrentRegion
Visual Basic
1
2
3
4
5
6
Sub Test()
Dim rng as Range
'Выделяем текущую область
Set rng = Activecell.CurrentRegion
rng.Select
End Sub
Подпись таблицы тоже захватывается, ее надо убрать из выделенного диапазона.
Конечно можно создать форму и вставить туда элемент управления RefEdit несколько штук и все области повыделять, но это долго и не интересно.
Прошу вашей помощи)
Файл во вложении как пример.
Вложения
Тип файла: xlsx Test Areas.xlsx (10.1 Кб, 11 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2017, 10:22
Ответы с готовыми решениями:

Как записать выделенный диапазон ячеек в многомерный массив, сортировка столбцов по среднему геометрическому VBA
доброго времени суток, уважаемые форумчане Прошу помощи в решении такой задачи: --прямоугольная...

Excel : Выделенный диапазон столбца обменять с соседним слева аналогичным диапазоном
Срочно нужна помощь в решении задачи 14. Excel : Выделенный диапазон столбца (№ столбца ? 2)...

Excel : Выделенный диапазон переместить на одну строку вниз и заключить в рамку
Срочно нужна помощь в решении задачи 16. Excel : Выделенный диапазон переместить на одну строку...

Как выгрузить диапазон ячеек в textbox (vba excel)?
Такая проблема: с одной ячейкой работает без проблем, заносит ее содержимое в textbox...

7
3866 / 2282 / 765
Регистрация: 02.11.2012
Сообщений: 6,024
17.07.2017, 12:15 2
например так.
Visual Basic
1
2
3
4
5
Dim rng As Range, dannye As Range
Set rng = Cells(3, 1).CurrentRegion
rng.Select
Set dannye = rng.Offset(3, 2).Resize(rng.Rows.Count - 4, rng.Columns.Count - 3)
dannye.Select
1
0 / 0 / 0
Регистрация: 08.07.2017
Сообщений: 7
17.07.2017, 13:22  [ТС] 3
Цитата Сообщение от Vlad999 Посмотреть сообщение
например так.
Visual Basic
1
2
3
4
5
Dim rng As Range, dannye As Range
Set rng = Cells(3, 1).CurrentRegion
rng.Select
Set dannye = rng.Offset(3, 2).Resize(rng.Rows.Count - 4, rng.Columns.Count - 3)
dannye.Select
)) спасибо за ироничный ответ) смешно))
Эта таблица как пример. Необходимая таблица может быть разных размеров с разным количеством столбцов подписей и строк заголовков. Нужен код который будет адаптирован под любые условия. Мне хотя бы натолкнуть на мысль и я пойму как сделать, но пока что то никак.
0
414 / 262 / 82
Регистрация: 27.10.2012
Сообщений: 860
17.07.2017, 22:13 4
Цитата Сообщение от dimabk Посмотреть сообщение
спасибо за ироничный ответ
Вы бы свой ироничный вопрос почитали сначала. Ваш код присваивает переменной rng объект - диапазон ячеек. Это просто ячейки с их свойствами, никаких "область данных", "область заголовка" и прочей мути у них нет и они об этом не знают.
0
0 / 0 / 0
Регистрация: 08.07.2017
Сообщений: 7
17.07.2017, 23:30  [ТС] 5
Цитата Сообщение от kalbasiatka Посмотреть сообщение
Вы бы свой ироничный вопрос почитали сначала. Ваш код присваивает переменной rng объект - диапазон ячеек. Это просто ячейки с их свойствами, никаких "область данных", "область заголовка" и прочей мути у них нет и они об этом не знают.
Уважаемый не надо видеть в моей просьбе какую то иронию. Я понимаю что это объект и он не содержит уже готовых областей. Я просто выразил желание как можно в выделенном диапазоне определить отдельные области, либо тексту либо по значениям, разные зацепки могут быть. Полноценный ответ найти у меня не получается, поэтому и спрашиваю совета у знатоков. Я не начинающий, и все о чем вы говорите прекрасно знаю.
0
414 / 262 / 82
Регистрация: 27.10.2012
Сообщений: 860
18.07.2017, 07:15 6
ответ:
Цитата Сообщение от dimabk Посмотреть сообщение
либо тексту либо по значениям
У диапазона можно определить крайние границы от них плясать rng.Rows.Count / Columns.Count.
Есть поиск либо циклом пройтись по массиву и найти нужные строки. Если, конечно знаете, что нужно искать.
Если нужны только значения можно использовать массив.
А вот это
Цитата Сообщение от dimabk Посмотреть сообщение
Я не начинающий
с этим
Цитата Сообщение от dimabk Посмотреть сообщение
Полноценный ответ найти у меня не получается
не вяжется что-то.
0
31 / 31 / 8
Регистрация: 12.04.2015
Сообщений: 79
18.07.2017, 15:27 7
Лучший ответ Сообщение было отмечено dimabk как решение

Решение

Вы об этом?

Test Areas (1).rar
0
0 / 0 / 0
Регистрация: 08.07.2017
Сообщений: 7
19.07.2017, 13:05  [ТС] 8
Ну да. Так. Только Вы привязали к конкретной ячейке. Количество строк в заголовке разное может быть. Я вышел из ситуации так. Просто нужно встать в левую верхнюю ячейку в области значений и от нее плясать. Все что слева это подписи строк, все что выше это заголовок и т.д. Дальше можно через userform сделать уточнение правильности определения областей и т.д. В общем спасибо. Дальше уже самому можно.
Спасибо за правильное понимание моего вопроса и за макрос.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2017, 13:05
Помогаю со студенческими работами здесь

Excel : Скопировать выделенный диапазон с первого листа на тот лист активной рабочей книги
8. Excel : Скопировать выделенный диапазон с первого листа на тот лист активной рабочей книги,...

Как задать диапазон имен для рабочей книги в VBA Excel?
Добрый день. Нужна помощь с несколькими вопросами по vba excel: 1. Для создания сводной таблицы я...

Обработать выделенный диапазон ячеек, результат записать в смежный диапазон
Напишите в среде Excel макрос, который в выделенном диапазоне ячеек должен выполнять заданные...

Именованный диапазон в VBA Excel
Как создать именованный диапазон в VBA Excel(при нажатии на этот диапазон выскакивает форма), да...

Именованный диапазон через VBA Excel
На рисунке изображены две именованные области(1 и 2), при добавлении, удалении цены и времени ...

Функция в VBA Excel для закрепления области
Доброго времени суток, подскажите, пожалуйста, как программным способом в Excel закрепить область?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru