green_fr (green_fr) wrote,
green_fr
green_fr

Category:

Excel : relative named ranges

«Шутка» для любителей Excel (смеяться грустно, после слова «L516»).
Знаете, есть там возможность дать какой-то области имя, и потом это имя использовать в формулах? В английском Excel это делается через Insert->Names.
Я только что потерял пол часа, пытаясь сделать то же самое через VBA.

Оказывается, когда я пишу Call ThisWorkbook.Names.Add("LIB_TYPE«, «=param!I1:K516»), написанный мною абсолютный адрес I1:K516 пересчитывается в относительный (относительно той ячейки, на которой стоит в это время курсор, например, если он стоит на A1, то пересчитанный адрес будет L1C9:L516C11), и именованная зона определяется с этим относительным адресом.
Таким образом, если я потом переставлю курсор на B1 и вызову LIB_TYPE, мне вернётся значение матрицы J1:L516! Я не могу представить себе, кому может понадобиться такое поведение именованных зон.

Решением является простановка долларов: Call ThisWorkbook.Names.Add("LIB_TYPE«, «=param!$I$1:$K$516»)

Дабы предупредить возможные комментарии «Переходи на Linux Open Office!», расскажу шутку из Open Office Calc. Предположим, у вас есть файл с двумя закладками: A и B. В закладке B есть формула, указывающая на ячейку X1 закладки A. Скопируем закладку B и поставим её (под именем C) третьей в этом же файле. Вместе со всеми данными закладки скопируется и формула, только теперь она будет указывать на ячейку X1 закладки B!

В данном случае я не то, что не понимаю, кому может пригодиться такое поведение. Я искренне верю, что писавшие Open Office люди просто проморгали этот баг. Надо бы как-нибудь сообщить о нём...
Tags: excel, rabota
Subscribe

  • 2020 год дома

    Вторая часть фотографий 2020 года: что было у нас дома. Купили игрушку на Новый год, Turing Tumble — интересный концепт, когда ты строишь очень…

  • Музеи 2019—2020

    Очень не хватает музеев, во Франции они до сих пор всё ещё закрыты. В какой-то момент задумался: насколько объективно снижение количества моих…

  • «Дом на краю света», «Шахматная новелла»

    По очередному «Книжному базару» прочитал «Дом на краю света» Каннингема. В передаче рассказывали о переосмыслении понятия «семьи», и по описанию всё…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 26 comments

  • 2020 год дома

    Вторая часть фотографий 2020 года: что было у нас дома. Купили игрушку на Новый год, Turing Tumble — интересный концепт, когда ты строишь очень…

  • Музеи 2019—2020

    Очень не хватает музеев, во Франции они до сих пор всё ещё закрыты. В какой-то момент задумался: насколько объективно снижение количества моих…

  • «Дом на краю света», «Шахматная новелла»

    По очередному «Книжному базару» прочитал «Дом на краю света» Каннингема. В передаче рассказывали о переосмыслении понятия «семьи», и по описанию всё…