Доброго дня уважаемые форумчане.
В в программировании вообще и в vba в частности - самоучка, поэтому код, скорее всего, не самый эффективный, сильно не ругайте )
Некоторое время пытаюсь решить описанную задачу, но, видимо, без вашей помощи мне не справиться.
Задача. Имеем диапазон входных чисел A2:A21 (назовём его ЧИСЛА), всегда около 20 ячеек, заполнено обычно около половины, значения в диапазоне 2,0-9,5 с округлением до 0,1, ячейки всегда заполняются вручную. К этому диапазону есть дополнительный диапазон B2:K21 (назовём его БУКВЫ), столбцов диапазона всегда 10, значения заполняются формулой на листе, значения всегда целые числа от 0 до 15. Пользовательская функция должна взять значения из ЧИСЕЛ, отбросить пустые или нулевые, оставшиеся отсортировать по возрастанию, и если в БУКВАХ значение не нулевое к конкретному значению ЧИСЕЛ записать результат с присоединением это буквы. Например, для ЧИСЛА 7,8 БУКВА a имеет значение 0, а буква b значение 4, в результирующем столбце должно совсем не быть "7,8-a", т.к. значение для a = 0, а "7,8-b" быть должно, т.к. для b значение = 4. Результирующий диапазон около 30 ячеек, значения должны быть текстом, пустых ячеек в конце остаться не должно, все пустые, не заполненные функцией, можно заполнить любым символом или текстом.
В виде простого макроса код выводит массив отсортированных по возрастанию данных из диапазона ЧИСЛА, но в виде функции почему-то работать отказывается.
Буду благодарен, если поможете решить задачу до конца
В в программировании вообще и в vba в частности - самоучка, поэтому код, скорее всего, не самый эффективный, сильно не ругайте )
Некоторое время пытаюсь решить описанную задачу, но, видимо, без вашей помощи мне не справиться.
Задача. Имеем диапазон входных чисел A2:A21 (назовём его ЧИСЛА), всегда около 20 ячеек, заполнено обычно около половины, значения в диапазоне 2,0-9,5 с округлением до 0,1, ячейки всегда заполняются вручную. К этому диапазону есть дополнительный диапазон B2:K21 (назовём его БУКВЫ), столбцов диапазона всегда 10, значения заполняются формулой на листе, значения всегда целые числа от 0 до 15. Пользовательская функция должна взять значения из ЧИСЕЛ, отбросить пустые или нулевые, оставшиеся отсортировать по возрастанию, и если в БУКВАХ значение не нулевое к конкретному значению ЧИСЕЛ записать результат с присоединением это буквы. Например, для ЧИСЛА 7,8 БУКВА a имеет значение 0, а буква b значение 4, в результирующем столбце должно совсем не быть "7,8-a", т.к. значение для a = 0, а "7,8-b" быть должно, т.к. для b значение = 4. Результирующий диапазон около 30 ячеек, значения должны быть текстом, пустых ячеек в конце остаться не должно, все пустые, не заполненные функцией, можно заполнить любым символом или текстом.
Мои попытки что-то написать пока остановились на таком результате: | ||
|---|---|---|
|
В виде простого макроса код выводит массив отсортированных по возрастанию данных из диапазона ЧИСЛА, но в виде функции почему-то работать отказывается.
Буду благодарен, если поможете решить задачу до конца
Изменено: - 16.10.2025 14:53:36
