Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
6 / 6 / 1
Регистрация: 22.07.2012
Сообщений: 125
1

Задать переменные функции при её вызове

17.01.2018, 02:23. Показов 1456. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер!

Использую следующую функцию, которая просто записана в ячейках как формула:
http://www.excel-vba.ru/chto-u... cepitesli/
=СцепитьЕсли('W:\Салат\[Сова.xlsm]2018'!$K:$BF;AU2;'W:\Салат\[Сова.xlsm]2018'!$BF:$BF;", ";1)


Но хочется реализовать следующее:

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


У функции есть следующие переменные:

Function СцепитьЕсли(ByRef Диапазон As Range, ByVal Критерий As String, ByRef Диапазон_сцепления As Range, Optional Разделитель As String = " ", Optional БезПовторов As Boolean = False) As String
Dim li As Long, sStr As String, avItem, avDateArr(), avRezArr(), lUBnd As Long

Каким образом можно задать этим переменным диапазон при вызове функции, например "Диапазон" это W:\Салат\[Сова.xlsm]2018'!$K:$BF ?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.01.2018, 02:23
Ответы с готовыми решениями:

Переменные передаваемые при вызове функции
Не умею передавать значения переменных при вызове функции, кто бы смог подсказать как передать...

Переменные передаваемые при вызове функции
Не умею передавать значения переменных при вызове функции, кто бы смог подсказать как передать...

При вызове функции Sides () которая по сути должна менять переменные члены класса — ничего не происходит
Всем привет! Такой вопрос, в листинге объявлен класс Rect и определен объект theRect. При вызове...

Класс - Ошибки при вызове методов: В вызове функции отсутствует список аргументов
Добрый вечер всем! При изучении и написании работы столкнулся с ошибкой от которой не могу...

6
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
17.01.2018, 08:49 2
Лучший ответ Сообщение было отмечено Kerajel как решение

Решение

Kerajel, функция, вызванная из саба, не сможет обратиться к закрытой книге. Оптимальный способ - саб вставляет формулу в выделенный диапазон, потом заменяет формулу на значение:
Visual Basic
1
2
3
4
5
Sub Ke()
  With Selection
    .FormulaR1C1 = "формула_в_стиле_R1C1"
    .Value = .Value
  End Sub
Чтобы получить формулу_в_стиле_R1C1, выделите ячейку с формулой, в VBA в окне Immediate
Visual Basic
1
?activecell.formular1c1
1
6 / 6 / 1
Регистрация: 22.07.2012
Сообщений: 125
17.01.2018, 11:48  [ТС] 3
Благодарю!
0
6 / 6 / 1
Регистрация: 22.07.2012
Сообщений: 125
17.01.2018, 21:49  [ТС] 4
Ругается на кавычки внутри формулы: https://yadi.sk/i/KTLyQpHE3RYc7v
Миниатюры
Задать переменные функции при её вызове  
0
Заблокирован
17.01.2018, 22:06 5
Kerajel, продублируйте эту и следующую кавычку.
0
6 / 6 / 1
Регистрация: 22.07.2012
Сообщений: 125
17.01.2018, 23:27  [ТС] 6
Работает, большое спасибо! А по какому принципу нужно так дублировать кавычки?
0
3897 / 2302 / 776
Регистрация: 02.11.2012
Сообщений: 6,119
18.01.2018, 12:58 7
в формуле одна кавычка записывается в vba как две кавычки.
0
18.01.2018, 12:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2018, 12:58
Помогаю со студенческими работами здесь

При втором вызове не учитывает переменные
Надеюсь правильно тему назвал) Имею Wordpress, в index.php прописан код <?php if (is_home()) {...

Переменные имена при вызове процедур и функций
Можно ли использовать и как такой трюк: ... varA = RS('varA') ... Call SubName & varA() ...

Задать переменные в функции (перевод с C++)
Мне нужно переписать код С++ на Python, опыта вообще нет. есть вопрос. вот отрывок #ifdef...

Как из программы добавить переменные при вызове внешней программы через system?
В разрабатываемой программе имеются готовые переменные path и аргумент argv возвращающий название...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru