Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Помогите, плиз, нужна формула MIN в Excel Добавлено: 19.11.07 10:51  

Автор вопроса:  Markan
Помогите, плиз, формула MIN в Excel для расчета минимального значения без учета нулевых значений и пустых ячеек

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 EUGY



Вопросов: 0
Ответов: 454
 Профиль | | #1 Добавлено: 19.11.07 11:57
Значит так.
открываем редактор VBA (Alt+F11)
создаем новый модуль в книге
(VBAProject(Книга1)->Insert->Module)
Вставляем туда:
Option Explicit
Public Function MyMin(r As Range) As Variant
Dim mi As Variant
Dim c As Range
mi = 0
For Each c In r.Cells
        If (mi > c And c <> 0) Or (mi = 0) Then mi = c
Next

If mi = 0 Then
    MyMin = "Все данные нулевые"
Else
    MyMin = mi
End If

End Function


Закрывам редактор VBA.
И в нужную ячейку вставляем формулу:
=MyMin(~ВашРегион~)

Ответить

Номер ответа: 2
Автор ответа:
 Markan



Вопросов: 9
Ответов: 12
 Профиль | | #2 Добавлено: 19.11.07 12:23
Работает!
СПАСИБО!!!

Ответить

Номер ответа: 3
Автор ответа:
 angrynews



Вопросов: 33
Ответов: 119
 Web-сайт: www.angrynews.ru
 Профиль | | #3
Добавлено: 20.11.07 08:14
EUGY
а можно дать толкование этого примера?
Я ни разу не использовал For Each, только FOR. Мне вот это не понятно

For Each c In r.Cells
можно чуть подробнее разжевать, почему r.cells не понятно

Ответить

Номер ответа: 4
Автор ответа:
 EUGY



Вопросов: 0
Ответов: 454
 Профиль | | #4 Добавлено: 20.11.07 08:52
For Each .. In .. Это перебор элементов коллекции.
Параметром функции MyMin выступает объект Range, а у него есть коллекция Cells. А она (эта коллекция) также состоит из объектов Range.
Соответственно строку кода For Each c In r.Cells можно перевести на русский
Для Каждого Элемента В Коллекции Элементов ...
Next

Ответить

Номер ответа: 5
Автор ответа:
 angrynews



Вопросов: 33
Ответов: 119
 Web-сайт: www.angrynews.ru
 Профиль | | #5
Добавлено: 20.11.07 11:24
Благодарю

Ответить

Номер ответа: 6
Автор ответа:
 angrynews



Вопросов: 33
Ответов: 119
 Web-сайт: www.angrynews.ru
 Профиль | | #6
Добавлено: 20.11.07 11:28
Т.е. =MyMin(~ВашРегион~) это передача группы ячеек объекта Range в функцию?

Ответить

Номер ответа: 7
Автор ответа:
 EUGY



Вопросов: 0
Ответов: 454
 Профиль | | #7 Добавлено: 20.11.07 12:44
Это передача самого объекта Range

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам