Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/65: Рейтинг темы: голосов - 65, средняя оценка - 4.78
51 / 38 / 5
Регистрация: 14.01.2012
Сообщений: 127
1

Передача диапазона ячеек в функцию

02.03.2016, 14:34. Показов 12276. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Потребовалось написать пользовательскую функцию в Excel, функция должна принимать диапазон ячеек:
=PLACE(A2:I2,A2)
Функция PLACE принимает массив:
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Function Place(arr() As Integer, number As Integer)
for i=1 to UBound(arr)
for j=1 to (UBound(arr)-1)
if arr(j)<arr(j+1) then
c=arr(j)
arr(j)=arr(j+1)
arr(j+1)=c
endif
next j
next i
if number=arr(1) then
Place=1
endif
p=1
for i=2 to UBound(arr)
if arr(i)=arr(i-1) then
if number=arr(i) then
Place=p
Endif
Else
p=p+1
if number=arr(i) then
Place=p
Endif
endif
next i
End Function
LibreOffice при вычислении ячейки дает ошибку 501
Как правильно описать функцию, чтобы она могла принять в качестве параметра диапазон ячеек?
Может не массив нужно, а список или массив другой какой-нибудь...
0
Лучшие ответы (1)
02.03.2016, 14:34
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.03.2016, 14:34
Ответы с готовыми решениями:

Передача диапазона ячеек в формулу макроса
Хочу в макросе в выбранную ячейку вставить двойную формулу &quot;=СТАНДОТКЛОН(диапазон) / СРЗНАЧ(диапазон) Диапазон может меняться, но он...

Как выполнить функцию или метод replace для диапазона ячеек
Вроде так работает Cells(1, 2).Value = Replace(Cells(1, 2).Value, &quot;яяяяя&quot;, &quot;&quot;) но тогда придётся писать цикл, можно ли как-нибудь...

Составьте функцию, которая проверяет в каждой строке диапазона наличие элементов, больших половины максимума всех элементов диапазона
11.Составьте функцию, которая проверяет в каждой строке диапазона наличие элементов, больших половины максимума всех элементов диапазона. ...

5
3938 / 2332 / 789
Регистрация: 02.11.2012
Сообщений: 6,191
02.03.2016, 14:56 2
Лучший ответ Сообщение было отмечено nrv как решение

Решение

Visual Basic
1
Function Place(диапазон As Range, number As Integer)
ваш код придется править
1
51 / 38 / 5
Регистрация: 14.01.2012
Сообщений: 127
02.03.2016, 15:02  [ТС] 3
Почему-то не работает
0
3938 / 2332 / 789
Регистрация: 02.11.2012
Сообщений: 6,191
02.03.2016, 15:07 4
Цитата Сообщение от nrv Посмотреть сообщение
Почему-то не работает
откуда такие выводы? диапазон в функцию передается, а вот обрабатывается ли это другой вопрос.
например
Visual Basic
1
2
Function Place(диапазон As Range, number As Integer)
arr=диапазон.value
в окне Locals смотрим чему равно arr.

опишите словами что ваша функция должна делать.
0
Заблокирован
02.03.2016, 15:11 5
Цитата Сообщение от nrv Посмотреть сообщение
пользовательскую функцию в Excel
Цитата Сообщение от nrv Посмотреть сообщение
LibreOffice при вычислении ячейки дает ошибку 501
Может в этом проблема? Определитесь, с чем работаете.
0
51 / 38 / 5
Регистрация: 14.01.2012
Сообщений: 127
02.03.2016, 15:53  [ТС] 6
Сделаем функцию-заглушку, внутри которой точно нет проблемы:
PureBasic
1
2
3
Function Foo(range As Range, number As Integer)
Foo=number
End Function
Она тоже не работает, ошибка 501. Слово "диапазон" это случайно не есть ключевое слово? Проверить я не смог, если вместо range написать диапазон, ругается, но это все-таки на кириллицу наверное.

Добавлено через 14 минут
Ошибка 501, оказывается - это просто LibreOffice не видел функцию Foo (в случае с функцией Place по-прежнему 501, хотя теперь он ее должен видеть), теперь ошибка в Basic IDE "переменная типа object не установлена"

Добавлено через 10 минут
Упс, "object не задан" - это я при вызове функции 1 параметр вместо 2 указал, так что изначально все правильно написал - функция Foo дает ошибку 501

Добавлено через 8 минут
Спасибо, Range все-таки работает, просто параметры нужно писать через точку в запятой
0
02.03.2016, 15:53
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.03.2016, 15:53
Помогаю со студенческими работами здесь

Значения ячеек из диапазона
Привет всем! Парни нужна помощь... Нужно в экселе с помощью стандартных функций сделать следующее: Задать например диапазон ячеек и...

Запись диапазона ячеек
Здравствуйте! На одном из этапов выполнения макроса мне нужно создать именованный диапазон, рекодер выдал такой код: ...

Копирование диапазона ячеек
Уважаемые форумчане, подскажите, пожалуйста. Хочу скопировать диапазон ячеек с одного листа на другой. При этом хотелось бы, чтоб диапазон...

Выбор диапазона ячеек
Что-то совсем все подзабыл... в общем есть отчет для подсчета стажа сотрудников, который в свою очередь выдает разное кол-во строк, все...

Выделение диапазона ячеек
Всем доброго дня. Имеется кодintersect(activesheet.usedrange,range(&quot;A:D&quot;)).Select который выделяет диапазон ячеек до последней...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Использование кэша Laravel - полный гайд
bytestream 18.02.2025
Кэширование - один из наиболее эффективных способов повышения производительности веб-приложений. В современном мире, где скорость загрузки страниц напрямую влияет на удержание пользователей и. . .
Создаем REST API в Laravel с аутентификацией через Passport
bytestream 18.02.2025
Разработка современных веб-приложений все чаще требует создания надежного и хорошо структурированного API. REST API стал стандартом де-факто для построения взаимодействия между клиентской и серверной. . .
Пайплайны в Laravel - полный гайд
bytestream 18.02.2025
Разработка современных веб-приложений часто требует обработки сложных процессов, состоящих из множества последовательных шагов. Например, при создании системы комментариев может потребоваться. . .
Как правильно использовать @required в Symfony
bytestream 18.02.2025
При разработке приложений на Symfony мы часто сталкиваемся с необходимостью внедрения зависимостей. Фреймворк предоставляет несколько способов управления этим процессом, и одним из таких инструментов. . .
Система безопасности в Laravel: возможности и примеры
Wired 18.02.2025
Каждый день появляются новые виды атак и уязвимостей, которые могут поставить под угрозу конфиденциальные данные пользователей и функционирование всей системы. В этом контексте выбор надежного. . .
Давайте сравним Django и Laravel
Wired 18.02.2025
Django и Laravel - два мощных инструмента, которые часто сравнивают между собой. Оба фреймворка предлагают разработчикам богатый набор возможностей для создания масштабируемых веб-приложений, но. . .
Laravel или React - что лучше?
Wired 18.02.2025
В разработке веб выбор правильного инструмента часто определяет успех всего проекта. Особенно интересным представляется сравнение Laravel и React - двух популярных технологий, которые часто. . .
Laravel 11: новые возможности, гайд по обновлению
Wired 18.02.2025
Laravel 11 - это новая масштабная версия одного из самых популярных PHP-фреймворков, выпущенная в марте 2024 года. Эта версия продолжает традицию внедрения передовых технологий и методологий. . .
Миграции в Laravel
Wired 18.02.2025
Разработка веб-приложений на Laravel неразрывно связана с управлением структурой базы данных. При работе над проектом часто возникает необходимость вносить изменения в схему базы данных - добавлять. . .
Аутентификация в Laravel
Wired 18.02.2025
В современном мире веб-разработки безопасность пользовательских данных становится критически важным аспектом любого приложения. Laravel, как один из самых популярных PHP-фреймворков, предоставляет. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru