|
Пользовательская функция. Range
|
|||
---|---|---|---|
#18+
Здравствуйте! Создал простую пользовательскую функцию: Код: vbnet 1. 2. 3.
На листе в ячейке выбираем функцию "UserFunction1" и в аргументе задаем диапазон A1:D1. Код: sql 1.
Пользовательская функция работает. Но как сделать так, чтобы можно было задавать прерывные диапазоны, например, одновмеренно A1:D1 и F1:G1? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2017, 12:24 |
|
Пользовательская функция. Range
|
|||
---|---|---|---|
#18+
Через ; ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2017, 12:52 |
|
Пользовательская функция. Range
|
|||
---|---|---|---|
#18+
FЧерез ; Не работает. Если ставить точку с запятой, то будто задаем второй аргумент функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2017, 13:06 |
|
Пользовательская функция. Range
|
|||
---|---|---|---|
#18+
на http://www.planetaexcel.ru нашел. еще одни скобки нужно =UserFunction1((A1:D1;F1:G1)) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2017, 14:06 |
|
Пользовательская функция. Range
|
|||
---|---|---|---|
#18+
sergeyvgна http://www.planetaexcel.ru нашел. еще одни скобки нужно =UserFunction1((A1:D1;F1:G1)) Заработало! Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2017, 14:10 |
|
Пользовательская функция. Range
|
|||
---|---|---|---|
#18+
sergeyvgеще одни скобки нужносейчас проверить нет возможности, но сдается мне, что в случае нескольких диапазонов простой .Count может "врать". Скорее всего нужен будет цикл по Areas переданного "рваного" диапазона: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2017, 14:22 |
|
Пользовательская функция. Range
|
|||
---|---|---|---|
#18+
ferzmikk, Еще вариант без вторых скобок. Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2017, 15:18 |
|
Пользовательская функция. Range
|
|||
---|---|---|---|
#18+
iMrTidyferzmikk, Еще вариант без вторых скобок. Код: vbnet 1. 2. 3. 4. 5. 6.
Тогда получается, что прерывные диапазоны нужно вводить через точку с запятой. А если у функции не один аргумент, а несколько? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2017, 07:32 |
|
Пользовательская функция. Range
|
|||
---|---|---|---|
#18+
ferzmikk, Если речь не о втором наборе диапазонов, то, например, так. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2017, 12:44 |
|
Пользовательская функция. Range
|
|||
---|---|---|---|
#18+
Спасибо за дополнительные варианты. Продолжу. Пусть функция теперь считает не количество, а суммирует значения выбранных диапазонов. Логика такая, что в функции диапазоны отбираются в одной строке. В функции добавляю еще аргумент, который сдвигает выбранные колонки. Он будет как первый аргумент. А второй аргумент как выбор диапазонов. Сдвиг должен быть таким образом, что игнорирует не выбранные диапазоны. В данном случае это колонки "P", "R" и "T". См. скриншот. Если использовать функцию Offset, то не учтет не выбранные диапазоны. Подскажите, как это можно сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2017, 14:36 |
|
Пользовательская функция. Range
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2017, 14:41 |
|
Пользовательская функция. Range
|
|||
---|---|---|---|
#18+
Может быть задачку решать следующим образом? Добавить строку отметок. И к функции добавить еще один аргумент. У функции будут три аргумента: 1. Количество дней для сдвига 2. Диапазон значений (включая игнорирующие ячейки) 3. Диапазон отметок. Если указано "да", то соответствующую ячейку из диапазона значений нужно игнорировать при суммировании и сдвигах. См. скриншот. Или это усложнит? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2017, 16:22 |
|
Пользовательская функция. Range
|
|||
---|---|---|---|
#18+
И к функции добавить еще один аргумент. У функции будут три аргумента: 1. Количество дней для сдвига 2. Диапазон значений (включая игнорирующие ячейки) 3. Диапазон отметок. Если указано "да", то соответствующую ячейку из диапазона значений нужно игнорировать при суммировании и сдвигах.Учитывая, что при таком варианте аргументы это не массивы. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2017, 16:25 |
|
|
start [/forum/topic.php?fid=61&msg=39532314&tid=2172535]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 316ms |
total: | 461ms |
0 / 0 |