Предлагается написать "программу", состоящую из одной строки для воспроизведения в окне отладки (Immediate Window). Строка после ввода в окно отладки и нажатия Enter должна печатать адрес первой свободной СНИЗУ (пустой) ячейки в столбце A.
Например, если последней непустой ячейкой в столбце A является A10, то должен печататься адрес ячейки A11. Допустимым ответом считается любой из четырех вариантов: $A$11, A$11, $A11 или A11.
Дополнительное условие: данные в столбце A не могут находиться ниже ячейки A65000 (ниже предполагается всё пусто). Таким образом, возможным ответом на задачку может быть адрес от A1 до A65001. Ограничение 65К сделано для любителей Excel 2003.
Программа может состоять из нескольких операторов. Например, программа следующего вида является допустимой: for i=1to 10:debug.print i:next . Длина этой программы составляет 31 символ (правда, она решает совершенно другую задачу).
Возвращаясь к поставленному заданию про адрес: есть решение на 68 символов 63 символа.
Предлагается написать "программу", состоящую из одной строки для воспроизведения в окне отладки (Immediate Window). Строка после ввода в окно отладки и нажатия Enter должна печатать адрес первой свободной СНИЗУ (пустой) ячейки в столбце A.
Например, если последней непустой ячейкой в столбце A является A10, то должен печататься адрес ячейки A11. Допустимым ответом считается любой из четырех вариантов: $A$11, A$11, $A11 или A11.
Дополнительное условие: данные в столбце A не могут находиться ниже ячейки A65000 (ниже предполагается всё пусто). Таким образом, возможным ответом на задачку может быть адрес от A1 до A65001. Ограничение 65К сделано для любителей Excel 2003.
Программа может состоять из нескольких операторов. Например, программа следующего вида является допустимой: for i=1to 10:debug.print i:next . Длина этой программы составляет 31 символ (правда, она решает совершенно другую задачу).
Возвращаясь к поставленному заданию про адрес: есть решение на 68 символов 63 символа.Gustav
если заполнены A1:A10, то в диапазоне A1:A65000 первая свободная СНИЗУ - это A65000
ну, наверное, плохо выразился... как бы сказать-то... первая свободная ПО ЗАВЕРШЕНИИ ДВИЖЕНИЯ С САМОГО НИЗА ВВЕРХ ну как мы обычно определяем Ctrl+Up'ом с самого низу, только с некоторыми изюминками
если заполнены A1:A10, то в диапазоне A1:A65000 первая свободная СНИЗУ - это A65000
ну, наверное, плохо выразился... как бы сказать-то... первая свободная ПО ЗАВЕРШЕНИИ ДВИЖЕНИЯ С САМОГО НИЗА ВВЕРХ ну как мы обычно определяем Ctrl+Up'ом с самого низу, только с некоторыми изюминками
Возникли два вопроса: - каково соглашение об имени листа, к которому обращаемся? - код у вас правильно считает при пустой A1, но непустых ячейках ниже (скажем, заполнены только A8:A10)?
63 я тоже получил (с некоторой хитростью, правда)
Возникли два вопроса: - каково соглашение об имени листа, к которому обращаемся? - код у вас правильно считает при пустой A1, но непустых ячейках ниже (скажем, заполнены только A8:A10)?AndreTM
Skype: andre.tm.007 Donate: Qiwi: 9517375010
Сообщение отредактировал AndreTM - Среда, 17.09.2014, 19:04
Возникли два вопроса: - каково соглашение об имени листа, к которому обращаемся? - код у вас правильно считает при пустой A1, но непустых ячейках ниже (скажем, заполнены только A8:A10)?
1. никакого, полный фристайл (P.S. ну в смысле предполагаем, что этот лист у нас активен) 2. у меня - правильно, ответ в этом случае A11
Я тем временем закурил совершенно иную траву, получил еще один вариант на 63 и даже вытянул его до 57. Но по-прежнему до "травы" двух Саш мне еще далеко
Возникли два вопроса: - каково соглашение об имени листа, к которому обращаемся? - код у вас правильно считает при пустой A1, но непустых ячейках ниже (скажем, заполнены только A8:A10)?
1. никакого, полный фристайл (P.S. ну в смысле предполагаем, что этот лист у нас активен) 2. у меня - правильно, ответ в этом случае A11
Я тем временем закурил совершенно иную траву, получил еще один вариант на 63 и даже вытянул его до 57. Но по-прежнему до "травы" двух Саш мне еще далеко Gustav
как узнать что ячейка пустая? Cells(1,1)="" или IsEmpty(Cells(1,1))
Годится только второе - IsEmpty(Cells(1,1)) .
Первое не годится, так как введенная в A1 формула ="" даст True при сравнении Cells(1,1)="". Эта же формула ="", введенная, скажем, в A1:A3 и последующем Ctrl+Up снизу даст остановку на 3-й ячейке, не на 1-й.
как узнать что ячейка пустая? Cells(1,1)="" или IsEmpty(Cells(1,1))
Годится только второе - IsEmpty(Cells(1,1)) .
Первое не годится, так как введенная в A1 формула ="" даст True при сравнении Cells(1,1)="". Эта же формула ="", введенная, скажем, в A1:A3 и последующем Ctrl+Up снизу даст остановку на 3-й ячейке, не на 1-й.Gustav