|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.08.2011, 12:27 | #1 |
Пользователь
Регистрация: 05.07.2011
Сообщений: 12
|
Программное изменение данных, передаваемых функции
Добрый день!
С VBA столкнулась впервые, но дело очень срочное... есть функция, у которой входной параметр типа Range - передаваться будет всегда диапазон ячеек так вот для этих ячеек, что на входе, в самой функции нужно задать значения в зависимости от определенных условий (значений других ячеек таблицы) помогите, пожалуйста заранее благодарна
Every moment takes me to paradise
|
10.08.2011, 12:51 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
а с какими сложносями Вы столнулись???
у VBA по умолчанию ссылки на аргументы - ByRef, где, собственно, проблема?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
10.08.2011, 12:58 | #3 |
Пользователь
Регистрация: 05.07.2011
Сообщений: 12
|
сложность в том, что с этим языком столкнулась впервые, а все нужно сделать за пару дней, и нет времени рыться в учебниках =)
то есть, мне написать Function func1(ByRef Param1 As Range) так?
Every moment takes me to paradise
|
10.08.2011, 13:19 | #4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
так.
повторюсь, ByRef там присутствует перед аргументом и так Function func1(ByRef Param1 As Range) as boolean param1.cells(2,1) = "Hello!" ... end function Sub TestFunc1 c = func1([a1:a5]) msgbox [a2] end sub выполните TestFunc1, привет прочитали? значение аргумента переданного в Func1 было изменено в функции. какие сложности, кроме того, что Вам "нет времени рыться в учебниках..." без ByRef все сработает точно так же
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
11.08.2011, 00:42 | #5 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Saori,
хочу предупредить вот о чем. Если функция вызывается из формулы в ячейке, она не может изменять никакие ячейки, в т.ч. те, что переданы в качестве аргумента. Ни значения, ни форматы. Если функция вызывается из процедуры VBA (которая запускается из меню, или по какому-либо событию), то она, конечно, может изменять ячейки.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
11.08.2011, 13:11 | #6 |
Пользователь
Регистрация: 05.07.2011
Сообщений: 12
|
Казанский,
дело в том, что мне нужно, чтобы эта функция вызывалась именно из формулы в ячейке. в общем, эту проблему я по-другому решила, пусть и не совсем рационально, сейчас важен результат, потому как дело срочное проблема теперь в другом... на компе так называемого заказчика ВООБЩЕ не работает VBA =(
Every moment takes me to paradise
|
11.08.2011, 13:28 | #7 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Параметры безопасности - "отключить все макросы с уведомлением", тогда при открытии книги будет спрашивать, разрешать VBA ил нет.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
11.08.2011, 13:35 | #8 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Как я понял - функции указываются в параметрах ячейки, которые нужно изменить.
Так работать не будет. А вот если функция будет находиться в этих ячейках, то легко - для этого функции и предназначены. И параметры будут теперь только "определенных условий (значений других ячеек таблицы)" Иначе макрос на события листа/книги. Если не работает VBA - возможно отключены макросы. Но это можно обойти, если функцию/макрос поместить в файл, который запускается вместе с Экселем из папки автозагрузки Экселя - обычно это Personal.xls, но не принципиально.
webmoney: E265281470651 Z422237915069 R418926282008
|
11.08.2011, 13:43 | #9 |
Пользователь
Регистрация: 05.07.2011
Сообщений: 12
|
нет, не просто отключены макросы... я заходила в настройки и проверяла, что только не клацала... все равно ничего не работает
дело в том, что даже во вкладке Разработчика практически все кнопки и иконки не выделены и нет возможности их выбрать, нельзя открыть редактор VBA а по поводу функции... вот сама формула: Код:
Every moment takes me to paradise
|
11.08.2011, 13:56 | #10 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
почитайте внимательно сообщение №5, а затем №8
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Побитовый контроль передаваемых по COM порту данных | Lexa_kltn | C/C++ Сетевое программирование | 0 | 19.05.2011 14:39 |
Как узнать тип данных передаваемых sendbuf и send? | Crystallon | Работа с сетью в Delphi | 4 | 29.07.2010 19:22 |
Программное изменение шрифта | _-Re@l-_ | Общие вопросы Delphi | 5 | 15.05.2010 18:13 |
Программное изменение параметров радиоэлементов. | Rapid | Компьютерное железо | 1 | 26.01.2010 09:57 |
Считывание и расшифровка (интерпретация) данных с lpt порта, передаваемых печатающему устройству | Ma3a | Общие вопросы Delphi | 3 | 21.12.2009 08:46 |