Страница 1 из 1
Полулевые функции типа ПОЛУЧИТЬ.ЯЧЕЙКУ - работают не всегда?
Добавлено: 06 фев 2007, 01:06
tolikt
Есть, оказывается, куча удобных функций, про которые либо вообще не сказано, либо сказано вскользь и описание их нужно искать с большими усилиями.
Читаем помощь по функции ЯЧЕЙКА (выдержка):
Замечания
Функция ЯЧЕЙКА нужна для совместимости с другими системами электронных таблиц. Если требуется использовать информацию о ячейке в макросе, то функция ПОЛУЧИТЬ.ЯЧЕЙКУ предоставляет более широкий набор атрибутов.
О функции ПОЛУЧИТЬ.ЯЧЕЙКУ так толком нигде не разжёвано. В основном только то, что и так есть в Excel, только немного переделанная форма. Нашёл только по аглицки о функции GET.CELL. Хоть что-то.
Пример с функцией ПОЛУЧИТЬ.ЯЧЕЙКУ взят с
http://www.msoffice.nm.ru/samples/, пример #samples12
Используемые там функции ВЫСОТА и ШИРИНА являются результатом присвоения соответствующего имени сложной функции, т. е. составными из нескольких функций, в т. ч. и ПОЛУЧИТЬ.ЯЧЕЙКУ. Однако напрямую функция ПОЛУЧИТЬ.ЯЧЕЙКУ (т.е. если прямо в ячейке написать =ПОЛУЧИТЬ.ЯЧЕЙКУ(16;A1)) не работает: Excel пишет "Неверная функция".
Это так задумано или у меня только?
Вариант с пользовательской функцией не всегда хорош, т.к. иногда не нужно, чтоб в книге был хоть какой-нибудь макрос.
Excel 97
Re: Полулевые функции типа ПОЛУЧИТЬ.ЯЧЕЙКУ - работают не всегда?
Добавлено: 06 фев 2007, 14:38
pashulka
Во-первых, функция ПОЛУЧИТЬ.ЯЧЕЙКУ никогда не была ни левой, ни полулевой (левыми скорее можно назвать тех, кто делает выводы даже не зная предмета обсуждения, но мы не будем судить о книге не читая её и не станем вешать ярлыки)
Во-вторых, эта функция языка XLM и она не предназначена для ввода в ячейки рабочего листа, т.к. для написания макросов на этом языке существуют макролисты.
В третьих, описание этих функций можно найти на
http://www.microsoft.com и для этого не нужно прилагать больших усилий.
Re: Полулевые функции типа ПОЛУЧИТЬ.ЯЧЕЙКУ - работают не всегда?
Добавлено: 07 фев 2007, 02:28
Aent
Тем не менее вот вам прямая ссылка:
http://www.microsoft.com/downloads/than ... layLang=en
В Excel'
97 (
не 2000 - XP - 2003 и т.д) можно было воспользоваться
функцией CALL для обращения к функциям XLM. В современных версиях EXCEL
функция CALL заблокированна (см.
http://www.cpearson.com/excel/Call.htm)
Re: Полулевые функции типа ПОЛУЧИТЬ.ЯЧЕЙКУ - работают не всегда?
Добавлено: 07 фев 2007, 11:36
pashulka
А те, кто ещё не забыл, что живёт в России могут воспользоваться этой ссылкой
http://www.microsoft.com/downloads/deta ... laylang=ru
и использовать функцию =ВЫЗВАТЬ()
Aent писал(а):В современных версиях EXCEL функция CALL заблокированна
Нет, только при вызове из ячеек листа
Re: Полулевые функции типа ПОЛУЧИТЬ.ЯЧЕЙКУ - работают не всегда?
Добавлено: 15 янв 2008, 21:55
tolikt
А как использовать функцию ВЫЗВАТЬ()? В хелпе по макрофункциям указан пример для файла kernel32. Как применить, например, для вызова ПОЛУЧИТЬ.ЯЧЕЙКУ, так и не понятно.
Т.е. как, не занося функцию ПОЛУЧИТЬ.ЯЧЕЙКУ в Именованные функции (Вставка->Имя->Присвоить), написать функцию для получения, например, наименования шрифта в какой-либо ячейке?
Например, чтобы можно было внести в ячейку B1: =ФункцияИмениШрифта(A1) и получить наименование шрифта в ячейке A1.
Или хотя как сделать то же самое, но с возможностью написать именованную функцию?
Re: Полулевые функции типа ПОЛУЧИТЬ.ЯЧЕЙКУ - работают не всегда?
Добавлено: 16 янв 2008, 22:03
pashulka
B1 =ВЫЗВАТЬ("Xlcall32";"Excel4";"2JRJRR#!";185;;2;18;A1)
B1 =ВЫЗВАТЬ("Xlcall32";"Excel4";"2JRJRR#";185;;2;18;ДВССЫЛ("A1"))
Источник :
http://www.cpearson.com/excel/Call.htm
© Copyright, 1998, Laurent Longre.
P.S. Если
не хотите, чтобы Ваша формула пересчитывалась при каждом изменении данных в любом рабочем листе любой открытой рабочей книги (режим вычислений - автоматически ), то в первом варианте уберите ! а во втором, ДВССЫЛ()
Re: Полулевые функции типа ПОЛУЧИТЬ.ЯЧЕЙКУ - работают не всегда?
Добавлено: 17 янв 2008, 22:38
tolikt
pashulka, спасибо!
Кое-что буду использовать.
Однако, чувство растерянности и непонимания всё-равно остаётся. Зачем такие очевидные и востребованные функции так хитромудро прятать?
И ещё.
Из ссылки на
The CALL Function:
NOTE: The CALL function has been disabled in Excel 2000, because it represented a very serious security risk. This page refers to Excel 97 only, not Excel 2000 or Excel 2002
Как же тогда в Excel 2000 и выше?
Или это общая тенденция, вытекающая из параноидальной заботы о безопасности?
Microsoft избавляется от Visual Basic for Applications
Впрочем, последнее замечание не имеет прямого отношения к данному топику. Лучше тогда открыть новую тему.
Re: Полулевые функции типа ПОЛУЧИТЬ.ЯЧЕЙКУ - работают не всегда?
Добавлено: 18 янв 2008, 20:48
pashulka
1. В MS Excel 97 есть довольно подробная справка, касательно функции =ВЫЗВАТЬ(), поэтому, термин спрятать, вряд ли применим к этой функции (если же Вы говорили о макрофункциях, то они не рекламируются, ибо на смену XLM пришёл VBA, тем не менее, Вы можете их использовать и даже писать макросы, используя макроязык Excel4.0 - XLM)
2. В следующих версиях функцию =ВЫЗВАТЬ() можно вызвать программно, но сие действие не имеет особого смысла … к примеру, для получения информации о шрифте, достаточно использовать об'ект : Font
3. Вы правы, это именно "забота" о своих пользователях, и сколько бы мы не горевали, ничего не изменится, а оправдание своим действиям Microsoft всегда найдёт, равно как и людей, которые будут доказывать, что всё делается на благо потребителей.