Страницы: 1
RSS
Как проверить, является ли элемент массива положительным числом
 
Добрый день.
Прошу помочь разобраться с обработкой массива.
Макрос делал на основе других, и не всё до конца понимаю, что происходит.

В строке lr = sh.Cells(Rows.Count, 9).End(xlUp).Row предполагал,что в lr присваивается номер последней заполненной строки в столбце 9 т.е. столбец I (номер 36). Но присваивается вообще последний номер 38.

В строке If arr(i, 8 ) > 0 Then мне бы надо определять присутствие положительного числа. В данной ситуации срабатывает на всё что угодно, даже на "".

Примерно такая же проблема в строке
arr2(j, 4) = arr(i, 5) + 1000 'заказ.
Надо убедиться что там число, что то типа if as arr(i, 5) Long then или if ЕЧИСЛО(arr(i, 5)) then
 
у вас в 38 ячейке формула, т.е. она не пустая.
 
Цитата
Фрезератор написал:
срабатывает на всё что угодно, даже на "".
в ячейке текст с нулевой длиной, а он всегда больше числа.
Изменено: V - 01.03.2021 14:42:17
 
А есть средства, что бы понять что это число большее ноля? С условием что там будет формула.
Изменено: Фрезератор - 01.03.2021 14:46:50
 
Цитата
Фрезератор: есть средства, что бы понять что это число большее ноля?
If Len(x) And IsNumeric(x) And x>0 Then
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Всё заработало. Очень спасибо.
 
Название темы кто предложит?
 
vikttur, "Как проверить элемент массива на положительное число" (легче найти) или "Как проверить, является ли элемент массива положительным числом" (более по-русски)
Изменено: Jack Famous - 01.03.2021 16:24:49
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх