Страницы: 1
RSS
определить последнюю ячейку диапазона, есть код, в нём начало и конец таблицы определены, нужно ещё в диапазоне назначить
 
Код
Nachalo = НачалоДанных
lngKonec = КонецДанных
For i = lngKonec To Nachalo Step -1
KodVd = Val(Cells(i, 4).Value)

If KodVd > 0 Then
If (KodVd >= 2203000000#) And (KodVd < 2207500000#) Then    '   вот, после этой строчки нужно назначить последнюю ячейку именно этого диапазона, по 6 столбцу
может кто поможет, заради интересу нужно, потом куда нить налажу тему в дальнейшем.
 
"Именно этого диапазона" - это какого? Последнюю ячейку какую? Заполненную, покрашенную, специальным образом отформатированную?

Сплошные вопросы....


А был бы файл пример - все могло сложиться совсем иначе....
Кому решение нужно - тот пример и рисует.
 
Пытливый, в 4 столбце  макрос смотрит диапазон чисел от  >= 2203000000 до < 2207500000 мне нужна последняя ячейка в 6 столбце указанного диапазона, пример прилагаю
 слово "последняя", от слова ПОСЛЕДНИЙ, т.е ячейка должна соответствовать самому большому числу указанного диапазона.  
Изменено: ttolu - 05.02.2019 11:04:11
 
UDF. Ваш пример ячейки с максимальным значением для диапазона чисел не верен
Код
Function АДРЕСМАКС(iRng As Range, iMin, iMax)
Dim iCl As Range
Dim iTemp
For Each iCl In Intersect(iRng, Application.Caller.Parent.UsedRange)
    If iCl.Value >= iMin And iCl.Value <= iMax Then
        If iCl.Value > iTemp Then
            iTemp = iCl.Value
            АДРЕСМАКС = iCl.Address(0, 0)
        End If
    End If
Next
End Function
Согласие есть продукт при полном непротивлении сторон
 
Sanja, согласен, диапазон я поменяю, спасибо за эту подсказку;
а с Function я не знаю что делать, - как вызывают её я не ведаю.  
Изменено: ttolu - 05.02.2019 11:32:08
 
Цитата
ttolu написал: а с Function я не знаю что делать
На листе используется так же как и штатная функция, в коде VBA так же как и другие функции VBA
Код
Sub PrimerUDF()
    MsgBox АДРЕСМАКС(Columns("D"), 2203000000#, 2207500000#)
End Sub

Function АДРЕСМАКС(iRng As Range, iMin, iMax)
Dim iCl As Range
Dim iTemp
For Each iCl In Intersect(iRng, iRng.Parent.UsedRange)
    If iCl.Value >= iMin And iCl.Value <= iMax Then
        If iCl.Value > iTemp Then
            iTemp = iCl.Value
            АДРЕСМАКС = iCl.Address(0, 0)
        End If
    End If
Next
End Function
Согласие есть продукт при полном непротивлении сторон
 
Sanja, ещё вопрос: а как вывести просто номер строки, в тех же условиях?
 
Код
iCl.Address(0,0) заменить на iCl.Row
Согласие есть продукт при полном непротивлении сторон
 
Sanja, прикольно получается: в моём коде половина вообще не нужна... спасибо за помощь!!  
Страницы: 1
Наверх