Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / (Excel) передать контекст в пользовательскую функцию / 9 сообщений из 9, страница 1 из 1
07.12.2005, 12:26:47
    #33421836
Leon.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Excel) передать контекст в пользовательскую функцию
Excel 2002, пытаюсь написать свою функцию, для пересчета данных в ячейке на листе.
Код: plaintext
1.
Public Function MyFunc(ByVal val As Variant) As Boolean
End Function
Как среди аргументов этой функции передавать не только само значение ячейки, но и положение ее на листе? Номер или имя листа?

т.е. использовать не ActiveCell и ActiveSheet, которые могут потом неправильно пересчитаться при вызове CalculateFull? Что посоветуете?
...
Рейтинг: 0 / 0
07.12.2005, 12:46:28
    #33421920
Leon.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Excel) передать контекст в пользовательскую функцию
Подумал, что можно объявлять свою функцию по-другому:
Код: plaintext
1.
2.
Public Function MyFunc(ByVal rng As Excel.Range) As Boolean
End Function
т.е. передавать не значение, а выделенную область. А для получения значения ячейки использовать rng.Text
Правильным ли будет такой подход? Вроде все работает?
...
Рейтинг: 0 / 0
07.12.2005, 15:37:13
    #33422699
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Excel) передать контекст в пользовательскую функцию
имя листа можно так получить
Код: plaintext
1.
2.
Public Function MyFunc(ByVal rng As Excel.Range) As Boolean
  MsgBox rng.Worksheet.Name
End Function
...
Рейтинг: 0 / 0
07.12.2005, 15:51:17
    #33422778
(Excel) передать контекст в пользовательскую функцию
Leon.Правильным ли будет такой подход?
А почему бы и нет. По-моему это как раз то, что тебе нужно.
...
Рейтинг: 0 / 0
08.12.2005, 19:27:17
    #33426018
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Excel) передать контекст в пользовательскую функцию
Leon.т.е. передавать не значение, а выделенную область. А для получения значения ячейки использовать rng.Text
Правильным ли будет такой подход? Вроде все работает?
Самым правильным. Только для получения значения ячейки лучше все-таки использовать rng.Value
...
Рейтинг: 0 / 0
08.12.2005, 21:18:47
    #33426130
spectre
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Excel) передать контекст в пользовательскую функцию
White Owl
Только для получения значения ячейки лучше все-таки использовать rng.Value

Полностью согласен! Из некоторого опыта работы могу сказать, что свойство Value использовать более надежно, т.к. это гарантирует, что вы будете анализировать именно значение, а не то, что у вас в данный момент записано в поле Text, а там, как показывает все тот же некоторый опыт, может находиться вообще все что угодно.
...
Рейтинг: 0 / 0
09.12.2005, 11:43:44
    #33426948
Letter_D
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Excel) передать контекст в пользовательскую функцию
Думаете, свойство "Text" просто так придумано?



Иногда нужен именно текст... дата/время, например...
...
Рейтинг: 0 / 0
12.12.2005, 08:30:48
    #33429716
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Excel) передать контекст в пользовательскую функцию
с этим свойством (text) действительно осторожнее, например, если колонка заужена, то вместо даты время можно получить "####"
...
Рейтинг: 0 / 0
12.12.2005, 10:48:18
    #33429972
Letter_D
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Excel) передать контекст в пользовательскую функцию
Это уже обсуждалось на форуме. Недавно, с моей подачи. :)
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / (Excel) передать контекст в пользовательскую функцию / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]