IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Вопрос по работе с диапазоном (Excel)
Red_Garry
сообщение 1.4.2010, 15:09
Сообщение #1


Новичок
*

Группа: Продвинутые
Сообщений: 7
Регистрация: 12.3.2010
Город: Харьков Украина



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


Аспирант
***

Группа: Продвинутые
Сообщений: 334
Регистрация: 26.4.2009
Город: Липецк
Учебное заведение: ЛГТУ
Вы: студент



Формула =МАКС(диапазон1;...) не прокатывает?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Red_Garry
сообщение 2.4.2010, 3:41
Сообщение #3


Новичок
*

Группа: Продвинутые
Сообщений: 7
Регистрация: 12.3.2010
Город: Харьков Украина



прокатывает, наверное... А если взять более сложный случай: сообщение должно выдаваться, когда значение в ячейке попадает в некий критический диапазон? Т.е. к примеру, критический диапазон больше 100, но меньше 150 и должно сообщаться, что, дескать, в вашем массиве данных есть значения в критическом диапазоне
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vahappaday
сообщение 2.4.2010, 6:52
Сообщение #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
сообщение 2.4.2010, 7:11
Сообщение #5


Новичок
*

Группа: Продвинутые
Сообщений: 7
Регистрация: 12.3.2010
Город: Харьков Украина



Спасибо! Наверное, я остановлюсь на этом варианте
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 24.4.2024, 11:11

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru