![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Red_Garry |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Продвинутые Сообщений: 7 Регистрация: 12.3.2010 Город: Харьков Украина ![]() |
Здравствуйте!
У меня задача упрощённо выглядит так: существует прямоугольный блок цифровых данных (порядка 10000 строк и 200 столбцов). Необходимо проанализировать его и, если в какой-то, первой-попавшейся ячейке, число превышает определённый порог, то просто выдаётся сообщение, что, дескать, порог превышен. Самое простое, что мне приходит на ум, - это запустить проверку в цикле For Next или While wend, но здесь определяющим является время выполнения макроса. Может существует какой-то более быстрый способ проверки диапазона? Заранее благодарен |
![]() ![]() |
Vahappaday |
![]()
Сообщение
#2
|
Аспирант ![]() ![]() ![]() Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент ![]() |
Формула =МАКС(диапазон1;...) не прокатывает?
|
Red_Garry |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Продвинутые Сообщений: 7 Регистрация: 12.3.2010 Город: Харьков Украина ![]() |
прокатывает, наверное... А если взять более сложный случай: сообщение должно выдаваться, когда значение в ячейке попадает в некий критический диапазон? Т.е. к примеру, критический диапазон больше 100, но меньше 150 и должно сообщаться, что, дескать, в вашем массиве данных есть значения в критическом диапазоне
|
Vahappaday |
![]()
Сообщение
#4
|
Аспирант ![]() ![]() ![]() Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент ![]() |
Вот что гласит справка 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 |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Продвинутые Сообщений: 7 Регистрация: 12.3.2010 Город: Харьков Украина ![]() |
Спасибо! Наверное, я остановлюсь на этом варианте
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 22:49 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru