Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ Вопрос по работе с диапазоном (Excel)

Автор: Red_Garry 1.4.2010, 15:09

Здравствуйте!
У меня задача упрощённо выглядит так: существует прямоугольный блок цифровых данных (порядка 10000 строк и 200 столбцов). Необходимо проанализировать его и, если в какой-то, первой-попавшейся ячейке, число превышает определённый порог, то просто выдаётся сообщение, что, дескать, порог превышен. Самое простое, что мне приходит на ум, - это запустить проверку в цикле For Next или While wend, но здесь определяющим является время выполнения макроса. Может существует какой-то более быстрый способ проверки диапазона? Заранее благодарен

Автор: Vahappaday 1.4.2010, 18:44

Формула =МАКС(диапазон1;...) не прокатывает?

Автор: Red_Garry 2.4.2010, 3:41

прокатывает, наверное... А если взять более сложный случай: сообщение должно выдаваться, когда значение в ячейке попадает в некий критический диапазон? Т.е. к примеру, критический диапазон больше 100, но меньше 150 и должно сообщаться, что, дескать, в вашем массиве данных есть значения в критическом диапазоне

Автор: Vahappaday 2.4.2010, 6:52

Вот что гласит справка 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 2.4.2010, 7:11

Спасибо! Наверное, я остановлюсь на этом варианте

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)