vba.excel_самодельная_фукция,_которая_способна_мен ять_другие_ячейки
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > vba.excel_самодельная_фукция,_которая_способна_мен ять_другие_ячейки

vba.excel_самодельная_фукция,_которая_способна_мен ять_другие_ячейки

Ответ
Поиск в этой теме
Непрочитано 20.11.2009, 23:35 #1
vba.excel_самодельная_фукция,_которая_способна_мен ять_другие_ячейки
Mikka
 
Регистрация: 05.08.2008
Сообщений: 155

Доброго времени суток уважаемые. У меня такой вопрос:

Мне нежно написать функцию для excel, которая будет записывать свои данные в переданный в нее диапазон.
Например:

Код:
[Выделить все]
Function test_rng(val As Range)
    val.Cells(1, 1) = "test"
End Function
почему не работает это код ?
Просмотров: 3076
 
Непрочитано 21.11.2009, 00:40
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


Пиши ее нежно
Код:
[Выделить все]
Public Function test(addr As Range)
  test = addr.Value + 1
End Function
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.11.2009, 18:51
#3
Mikka


 
Регистрация: 05.08.2008
Сообщений: 155


Все дело в том, что мне нежно изменить "Чужую ячейку, а не ту в которую записана формула"!
Mikka вне форума  
 
Непрочитано 21.11.2009, 19:19
#4
ETCartman


 
Регистрация: 09.12.2008
Сообщений: 4,643


Кстати в OpenOffice можно писать функции, возвращающие массивы (например матрицы) - при вооде функции она автоматом заполняет область вниз и вправо. Очень часто их стал использовать в последнее время. Интересно - есть такие в Excel VBA?
ETCartman вне форума  
 
Непрочитано 23.11.2009, 11:54
#5
Mikha

Highway Design
 
Регистрация: 16.09.2007
Tver
Сообщений: 27


Цитата:
Сообщение от Mikka Посмотреть сообщение
Мне нежно написать функцию для excel, которая будет записывать свои данные в переданный в нее диапазон.
Напрямую создать такую функцию нельзя, т.к. функция, вызванная прямо или косвенно из ячейки рабочего листа, не может изменять значения других ячеек. Например, если вы попытаетесь включить выражение Range("A3").Value = 123 в функцию, то это вызовет ошибку, а в ячейке будет возвращено сообщение об ошибке #Значение.
Подробности
Там же предложен один из вариантов решения данной проблемы - использовать событие листа Worksheet_Change
Mikha вне форума  
 
Автор темы   Непрочитано 23.11.2009, 21:10
#6
Mikka


 
Регистрация: 05.08.2008
Сообщений: 155


Спасибо большое, я решил свою проблему, как раз при помощи Worksheet_Change
Mikka вне форума  
 
Непрочитано 24.11.2009, 12:49
#7
Сергей Дубина


 
Регистрация: 06.04.2009
Сообщений: 702


Цитата:
Сообщение от ETCartman Посмотреть сообщение
Кстати в OpenOffice можно писать функции, возвращающие массивы (например матрицы) - при вооде функции она автоматом заполняет область вниз и вправо. Очень часто их стал использовать в последнее время. Интересно - есть такие в Excel VBA?
Мне тоже нужно написать функции, возвращающие массивы . Может кто знает как это делается?
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 24.11.2009, 13:06
#8
KronSerg

Вода - моя работа
 
Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,638


А в чём проблема? Присваиваешь ей результат в виде массива и функция возвращает массив.
__________________
Нерешаемых проблем не бывает.
KronSerg вне форума  
 
Непрочитано 24.11.2009, 14:36
#9
Mikha

Highway Design
 
Регистрация: 16.09.2007
Tver
Сообщений: 27


>>Сергей Дубина
Примеры использования массивов в процедурах и функциях VBA (на английском)
Mikha вне форума  
 
Непрочитано 24.11.2009, 16:57
#10
Сергей Дубина


 
Регистрация: 06.04.2009
Сообщений: 702


Спасибо KronSerg и Mikha, я в своё время столько копий поломал, а загвоздка в сущей ерунде была....
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 24.11.2009, 17:11
#11
KronSerg

Вода - моя работа
 
Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,638


Вот, почитай на русском, може пригодится http://www.mini-soft.ru/soft/vba/index.php
__________________
Нерешаемых проблем не бывает.
KronSerg вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > vba.excel_самодельная_фукция,_которая_способна_мен ять_другие_ячейки

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск