Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Поиск максимального значения. / 7 сообщений из 7, страница 1 из 1
09.09.2010, 19:45
    #36838830
Alex9682
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск максимального значения.
Здравствуйте. Решаю следующую задачу
Требуется перебрать 180 строк по столбцам с D по L, найти максимальное значение в каждой строке и пометить его цветом
Использую следующий макрос.


Sub Макс()
Dim iMaxRange As Range
Dim iMax As Long
For w = 1 To 180
R1 = Range("D3").Offset(w, 0).Address
R2 = Range("L3").Offset(w, 0).Address

iMax = WorksheetFunction.Max(Range(R1 & " : " & R2))
If iMax = 0 Then 'если в строке нет чисел
GoTo q:
End If
Set iMaxRange = Range(R1 & " : " & R2).Find(What:=iMax, LookIn:=xlValues, LookAt:=xlWhole) 'ищем ячейку с максим. значением
iMaxRange.Interior.ColorIndex = 3 'выделяем красным
q:
Next
End Sub

Но выдает ошибку на строке - iMaxRange.Interior.ColorIndex = 3, потому что в предыдущей строке не было найдено и присвоено искомое значение.

Если ставлю обычные цифры 1, 2, и т.д. , то все работает нормально, но учитывая что у меня цифры могут иметь по 10 знаков после запятой, то видимо по этому происходит ошибка.
Замена Long на Double не помогает. Как быть?
...
Рейтинг: 0 / 0
09.09.2010, 20:08
    #36838853
Serge 007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск максимального значения.
Alex9682Если ставлю обычные цифры 1, 2, и т.д. , то все работает нормально, но учитывая что у меня цифры могут иметь по 10 знаков после запятой, то видимо по этому происходит ошибка.
Замена Long на Double не помогает.Здравствуйте.
Тип данных Decimal обеспечивает наибольшее количество значащих цифр числа. Он поддерживает до 29 значащих цифр и может представлять значения, превышающие 7.9228 x 10^28
...
Рейтинг: 0 / 0
09.09.2010, 20:14
    #36838859
Alex9682
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск максимального значения.
что то у себя в Excel не нашел что переменной можно присвоить Decimal.
Но проблемка решена. Забил на все и сделл по простому))
убрал поиск и сделал прямое сравненние и все заработало

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub Макс()
Dim iMaxRange As Range
Dim iMax As Double
 For w =  1  To  180 
    R1 = Range("D3").Offset(w,  0 ).Address
    R2 = Range("L3").Offset(w,  0 ).Address
   
    iMax = WorksheetFunction.Max(Range(R1 & " : " & R2))
    If iMax =  0  Then 'если в строке нет чисел
        GoTo q:
    End If
 
For t =  0  To  8 
 If Range("D3").Offset(w, t) = iMax Then
 Range("D3").Offset(w, t).Interior.ColorIndex =  3 
 End If
Next

q:
 Next
End Sub
...
Рейтинг: 0 / 0
11.09.2010, 22:13
    #36842046
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск максимального значения.
Alex9682,

Попробуйте так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub Макс()
    Dim iMaxRange As Range
    Dim iMax As Double
    For w =  1  To  180 
        R1 = Range("D3").Offset(w,  0 ).Address
        R2 = Range("L3").Offset(w,  0 ).Address
        iMax = WorksheetFunction.Max(Range(R1 & " : " & R2))
        If iMax >  0  Then    'если в строке числа
            Set iMaxRange = Range(R1).EntireRow.Find(What:=iMax, LookIn:=xlFormulas, LookAt:=xlWhole)    'ищем ячейку с максим. значением
            If Not iMaxRange Is Nothing Then iMaxRange.Interior.ColorIndex =  3     'выделяем красным
        End If
    Next
End Sub
...
Рейтинг: 0 / 0
13.09.2010, 10:48
    #36842996
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск максимального значения.
Модератор: Alex9682,The_Prist - используйте тег SRC.
...
Рейтинг: 0 / 0
13.09.2010, 10:52
    #36843007
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск максимального значения.
big-dukeThe_Prist - используйте тег SRC.Извиняйте, я по привычке использовал тег Sub. Обещаю исправиться :-)
...
Рейтинг: 0 / 0
13.09.2010, 12:04
    #36843227
I need your help
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск максимального значения.
Использовать GOTO - очень и очень дурной тон, однака.
Это мое ИМНО
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Поиск максимального значения. / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]