Помощь - Поиск - Пользователи - Календарь
Полная версия: Вопрос по работе с диапазоном (Excel) > Информатика / Программирование
Образовательный студенческий форум > Другие дисциплины > Информатика / Программирование
Red_Garry
Здравствуйте!
У меня задача упрощённо выглядит так: существует прямоугольный блок цифровых данных (порядка 10000 строк и 200 столбцов). Необходимо проанализировать его и, если в какой-то, первой-попавшейся ячейке, число превышает определённый порог, то просто выдаётся сообщение, что, дескать, порог превышен. Самое простое, что мне приходит на ум, - это запустить проверку в цикле For Next или While wend, но здесь определяющим является время выполнения макроса. Может существует какой-то более быстрый способ проверки диапазона? Заранее благодарен
Vahappaday
Формула =МАКС(диапазон1;...) не прокатывает?
Red_Garry
прокатывает, наверное... А если взять более сложный случай: сообщение должно выдаваться, когда значение в ячейке попадает в некий критический диапазон? Т.е. к примеру, критический диапазон больше 100, но меньше 150 и должно сообщаться, что, дескать, в вашем массиве данных есть значения в критическом диапазоне
Vahappaday
Вот что гласит справка VBA:

Цитата

To find cells that match more complicated patterns, use a For Each...Next statement with the Like operator. For example, the following code searches for all cells in the range A1:C5 that use a font whose name starts with the letters Cour. When Microsoft Excel finds a match, it changes the font to Times New Roman.

For Each c In [A1:C5] If c.Font.Name Like "Cour*" Then c.Font.Name = "Times New Roman" End If
Next


По 2000000 ячеек должно пробегать достаточно быстро, даже если вдруг придётся пробегать все.

Код
For Each c In [A1:FF]
      If c.Value>100 and c.Value>150 Then
             MsgBox("Found")
             End For
      End If
Next


Прошу прощения, если что не так, не проверял код и давно уже не пишу на VBA, приходилось как-то один семестр, но дело было давно.
Red_Garry
Спасибо! Наверное, я остановлюсь на этом варианте
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.