Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458

Определить набор рейнджей на которые установлено условие проверки данных

31.01.2013, 14:52. Показов 1563. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Знаю, что просто ... но ресурсы по поиску все закрыты
Как определить набор рейнджей листа на которые установлено условие проверки данных (списки, только инт, стринг и т.д.)?
(в т.числе) возможно ли определить не перебор всех ячеек столбца, а весь столбец сразу, если условие устанавливалось на него?

не надо подробно. только направление.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.01.2013, 14:52
Ответы с готовыми решениями:

Условие на VBA для проверки логического типа данных, ошибка
Здравствуйте! У меня в форме есть логический флажок, называется он . Мне нужно, чтобы когда он был включен - поле ДатаВозврКн автоматически...

не могу компилировать программу и надо условие проверки данных фаила на простые числа и записать их
надо условие проверки данных фаила на простые числа? #include <fstream> #include <ctime> #include <cstdlib> #include...

В результате проверки качества приготовленных для посева семян гороха установлено
Помогите пожалуйста с задачей или хотя бы подскажите какой формулой воспользоваться? В результате проверки качества приготовленных для...

11
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
31.01.2013, 15:06
Направление? Попробуйте записать установку проверки рекордером.
0
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
31.01.2013, 15:36  [ТС]
Извините. Задача другая - не установить проверку, а получить группу диапазонов проверок.
Т.е. написать что-то типа

For each dRange To [группа рейнджей]
' какая-то обработка
Next

как найти [группа рейнджей] ?
причем так, чтобы не поячеечно, а если условие задано на столбец, то dRange При переходе к этому элементу - было бы всем столбцом.
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
31.01.2013, 15:57
Направления не поняли
Записали, посмотрели код, имеем за что зацепиться, чтоб узнать, что в проверке ввода задано.
А вообще задача в целом мутная... Может эапоминать, когда проверка устанавливается? А если не устанавливается - всё снести и задать как нужно?
0
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
31.01.2013, 16:26  [ТС]
Задача в сериализации этих рейнджей. Потом сохранение сериализованной строки, сброс правил на листе ... и потом их восстановление.
Есть вариант простой - перебор из SpecialCells(xlCellsTypeAllValidation)
но! представьте тогда, если у меня стоят правила на 2-х столбцах! что тогда? тогда через For прйдет весь диапазон ячеек этих двух столбуов - а это 130 тысяч ячеек.
вопрос - как системно получить два диапазона, такие, чтобы каждый из них был = столбцам (соответственно - тождественно равен Range("A:A") и Range("B:B"))
а если это диапазоны не равные столбцам?

только собирать в группы по правилам проверок и потом вычислять диапазоны самому? есть ли другие предложения?
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,576
31.01.2013, 17:15
StepInLik, вот так можно получить в столбце "A" диапазон ячеек, в котором находится "Проверка данных".
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub Procedure_1()
 
    Dim myRange As Excel.Range
    
    '1. Находим ячейки, в которых есть "Проверка данных" и даём
        'этому диапазону ячеек имя "myRange".
    Set myRange = Columns("A").SpecialCells(xlCellTypeAllValidation)
    
    '2. Выводим результат в View - Immediate Window.
    Debug.Print myRange.Address
    
End Sub
1
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
01.02.2013, 10:26  [ТС]
Сейчас у меня действительно - типовые правила в конкретных ячейках по столбцам или на весь столбец.
В принципе это вариант.
А что делать, когда диапазоны будут другие и заданных именей ) у диапазонов нет?!
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,576
01.02.2013, 10:28
StepInLik, сформируйте Excel-книгу с примерными данными, выложите эту книгу на Форуме и поясните на основе выложенной книги, какой вы хотите получить результат.
0
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
01.02.2013, 11:16  [ТС]
задачу решу, но описываю для общего понимания ...
Разным цветом в книге вложения обозначены области с одини и теми же проверками.
Надо найти группы ячеек таких диапазонов (диапазоны целые, без включений).
т.е. на выходе надо получить группы:
C3:F6
B8:C13
H1:H1048576 - пока мой классический случай
J1:J21


здесь наверное нужно пробегать все ячейки и строить группы строгих квадратных диапазонов. пока мысли такие ...
Вложения
Тип файла: xlsx Книга.xlsx (7.8 Кб, 2 просмотров)
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,576
01.02.2013, 11:19
Цитата Сообщение от StepInLik Посмотреть сообщение
задачу решу, но описываю для общего понимания ...
это не понятно. Т.е. вы просто выкладываете задание для других, может кому-то понадобится?
0
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
01.02.2013, 11:27  [ТС]
тема филисофская. можно об этом говорить долго - зачем или не зачем ...
если у кого будут какие мысли - как разбивать скоп ячеек на такие области - пишите.
все-таки это тема скорее алгоритмов, а не знаний языка или объектной модели ...
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
01.02.2013, 15:42
Visual Basic
1
2
3
4
5
6
Sub tt()
    Set myRange = ActiveSheet.UsedRange.SpecialCells(xlCellTypeAllValidation)
    For Each a In myRange.Areas
        Debug.Print a.Address
    Next
End Sub
Как вариант
Visual Basic
1
ActiveSheet.Cells.SpecialCells(xlCellTypeAllValidation)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.02.2013, 15:42
Помогаю со студенческими работами здесь

Посчитать сколько установлено разного ПО в организации и у кого оно установлено
Добрый день! Простите за не информативный заголовок, не знаю как кратко сформулировать. Исходные данные: Имеется некий список...

Дан набор слов, разделенных точкой с запятой (;). Набор заканчивается двоеточием (:). Определить, сколько в
:wall: Плиз хелп. Не могу составить программу на шарпе: Дан набор слов, разделенных точкой с запятой ( ; ). Набор заканчивается двоеточием...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru