Как задать координаты ячейки в excel
Довольно часто во время работы с таблицами пользователям требуется изменить размер ячеек. Иногда данные не помещаются в элементы текущего размера и их приходится расширять. Нередко встречается и обратная ситуация, когда в целях экономии рабочего места на листе и обеспечения компактности размещения информации, требуется уменьшить размер ячеек. Определим действия, с помощью которых можно поменять размер ячеек в Экселе.
Варианты изменения величины элементов листа
Сразу нужно отметить, что по естественным причинам изменить величину только одной ячейки не получится. Изменяя высоту одного элемента листа, мы тем самым изменяем высоту всей строки, где он расположен. Изменяя его ширину — мы изменяем ширину того столбца, где он находится. По большому счету в Экселе не так уж и много вариантов изменения размера ячейки. Это можно сделать либо вручную перетащив границы, либо задав конкретный размер в числовом выражении с помощью специальной формы. Давайте узнаем о каждом из этих вариантов более подробно.
Способ 1: перетаскивание границ
Изменение величины ячейки путем перетаскивания границ является наиболее простым и интуитивно понятным вариантом.
-
Для того, чтобы увеличить или уменьшить высоту ячейки, наводим курсор на нижнюю границу сектора на вертикальной панели координат той строчки, в которой она находится. Курсор должен трансформироваться в стрелку, направленную в обе стороны. Делаем зажим левой кнопки мыши и тянем курсор вверх (если следует сузить) или вниз (если требуется расширить).
Изменение ширины элементов листа путем перетягивания границ происходит по такому же принципу.
-
Наводим курсор на правую границу сектора столбца на горизонтальной панели координат, где она находится. После преобразования курсора в двунаправленную стрелку производим зажим левой кнопки мыши и тащим его вправо (если границы требуется раздвинуть) или влево (если границы следует сузить).
Если вы хотите изменить размеры нескольких объектов одновременно, то в этом случае требуется сначала выделить соответствующие им сектора на вертикальной или горизонтальной панели координат, в зависимости от того, что требуется изменить в конкретном случае: ширину или высоту.
-
Процедура выделения, как для строк, так и для столбцов практически одинакова. Если нужно увеличить расположенные подряд ячейки, то кликаем левой кнопкой мыши по тому сектору на соответствующей панели координат, в котором находится первая из них. После этого точно так же кликаем по последнему сектору, но на этот раз уже одновременно зажав клавишу Shift. Таким образом, будут выделены все строки или столбцы, которые расположены между этими секторами.
Если нужно выделить ячейки, которые не являются смежными между собой, то в этом случае алгоритм действий несколько иной. Кликаем левой кнопкой мыши по одному из секторов столбца или строки, которые следует выделить. Затем, зажав клавишу Ctrl, клацаем по всем остальным элементам, находящимся на определенной панели координат, которые соответствуют объектам, предназначенным для выделения. Все столбцы или строки, где находятся эти ячейки, будут выделены.
Способ 2: изменение величины в числовом выражении
Теперь давайте выясним, как можно изменить размер элементов листа, задав его конкретным числовым выражением в специально предназначенном для этих целей поле.
В Экселе по умолчанию размер элементов листа задается в специальных единицах измерения. Одна такая единица равна одному символу. По умолчанию ширина ячейки равна 8,43. То есть, в видимую часть одного элемента листа, если его не расширять, можно вписать чуть больше 8 символов. Максимальная ширина составляет 255. Большее количество символов в ячейку вписать не получится. Минимальная ширина равна нулю. Элемент с таким размером является скрытым.
Высота строки по умолчанию равна 15 пунктам. Её размер может варьироваться от 0 до 409 пунктов.
-
Для того, чтобы изменить высоту элемента листа, выделяем его. Затем, расположившись во вкладке «Главная», клацаем по значку «Формат», который размещен на ленте в группе «Ячейки». Из выпадающего списка выбираем вариант «Высота строки».
Примерно таким же образом можно изменить и ширину столбца.
-
Выделяем элемент листа, в котором следует изменить ширину. Пребывая во вкладке «Главная» щелкаем по кнопке «Формат». В открывшемся меню выбираем вариант «Ширина столбца. ».
Существуют и другой вариант изменить размер элементов листа, задав указанную величину в числовом выражении.
-
Для этого следует выделить столбец или строку, в которой находится нужная ячейка, в зависимости от того, что вы хотите изменить: ширину и высоту. Выделение производится через панель координат с помощью тех вариантов, которые мы рассматривали в Способе 1. Затем клацаем по выделению правой кнопкой мыши. Активируется контекстное меню, где нужно выбрать пункт «Высота строки. » или «Ширина столбца. ».
Впрочем, некоторых пользователей все-таки не устраивает принятая в Экселе система указания размера элементов листа в пунктах, выраженных в количестве символов. Для этих пользователей существует возможность переключения на другую величину измерения.
-
Переходим во вкладку «Файл» и выбираем пункт «Параметры» в левом вертикальном меню.
- Сантиметры;
- Миллиметры;
- Дюймы;
- Единицы по умолчанию.
После того, как выбор сделан, для вступления изменений в силу жмем по кнопке «OK» в нижней части окна.
Теперь вы сможете регулировать изменение величины ячеек при помощи тех вариантов, которые указаны выше, оперируя выбранной единицей измерения.
Способ 3: автоматическое изменение размера
Но, согласитесь, что не совсем удобно всегда вручную менять размеры ячеек, подстраивая их под конкретное содержимое. К счастью, в Excel предусмотрена возможность автоматического изменения размеров элементов листа, согласно величине тех данных, которые они содержат.
-
Выделяем ячейку или группу, данные в которой не помещаются в элемент листа, содержащего их. Во вкладке «Главная» клацаем по знакомой кнопке «Формат». В раскрывшемся меню выбираем тот вариант, который следует применить к конкретному объекту: «Автоподбор высоты строки» или «Автоподбор ширины столбца».
Урок: Автоподбор высоты строки в Экселе
Как видим, изменить размер ячеек можно несколькими способами. Их можно разделить на две большие группы: перетягивание границ и ввод числового размера в специальное поле. Кроме того, можно установить автоподбор высоты или ширины строк и столбцов.
друзья, вопрос:
есть 2 страницы - на одной номера участников (соответствуют номерам строчек), их имена и машины. например:
72 дима бмв
73 катя мерседес
74 юра ягуар
на другой странице результаты за конкретный день заездов, но не всех участников вообще, а только тех, кто ездили. например:
72 дима бмв
74 юра ягуар
сейчас построчно на листе(2) результатов забиты формулой ссылки на тот лист, т.е. в ячейках
=лист1!A72 =лист1!B72 =лист1!C72
=лист1!A74 =лист1!B74 =лист1!C74
то есть, для ввода результатов мне нужно вбивать формулой ячейку ряда A, потом брать за крестик, тянуть всю строчку, тогда по аналогии эксель подхватывает данные имени и машины участника. и так с каждой строчкой вручную
а хотелось бы, чтобы просто вводишь любую цифру и остальные строчки подхватывали данные, относительно этой цифры. т.е. технически столбец А может быть просто цифрами, вводимыми вручную (в ссылке на номер участника смыысла нет), а в столбцах B и C - формула и тогда строчка должна работать так:
72(цифрой) =лист1!B(ЛИСТ2!A1) =лист1!С(ЛИСТ2!A1)
то есть вопрос сводится к тому, как цифровую часть координаты ячейки задать не фиксированной цифрой, а цифрой, подхватываемой из другой ячейки с числовым значением? т.е. допустим не B1, а B(=A1)
понятно, в синтаксисе, как я написал это не работает, описал именно для понятности желаемой логики работы. а как это грамотно прописать?
либо другой способ решения вопроса, подскажите пожалуйста, а то каждую пятницу после соревнований безумно много времени трачу и на самих соревнованиях, во время заездов очень долго колупать таблицу, которую видят зрители, на их глазах, не очень красиво, несмотря на декоративное оформление
если не сложно, ответ пожалуйста на Контакт удален. Нарушение Правил форума
спасибо большое вашему форуму
[moder]Пример файла покажите[/moder]
друзья, вопрос:
есть 2 страницы - на одной номера участников (соответствуют номерам строчек), их имена и машины. например:
72 дима бмв
73 катя мерседес
74 юра ягуар
на другой странице результаты за конкретный день заездов, но не всех участников вообще, а только тех, кто ездили. например:
72 дима бмв
74 юра ягуар
сейчас построчно на листе(2) результатов забиты формулой ссылки на тот лист, т.е. в ячейках
=лист1!A72 =лист1!B72 =лист1!C72
=лист1!A74 =лист1!B74 =лист1!C74
то есть, для ввода результатов мне нужно вбивать формулой ячейку ряда A, потом брать за крестик, тянуть всю строчку, тогда по аналогии эксель подхватывает данные имени и машины участника. и так с каждой строчкой вручную
а хотелось бы, чтобы просто вводишь любую цифру и остальные строчки подхватывали данные, относительно этой цифры. т.е. технически столбец А может быть просто цифрами, вводимыми вручную (в ссылке на номер участника смыысла нет), а в столбцах B и C - формула и тогда строчка должна работать так:
72(цифрой) =лист1!B(ЛИСТ2!A1) =лист1!С(ЛИСТ2!A1)
то есть вопрос сводится к тому, как цифровую часть координаты ячейки задать не фиксированной цифрой, а цифрой, подхватываемой из другой ячейки с числовым значением? т.е. допустим не B1, а B(=A1)
понятно, в синтаксисе, как я написал это не работает, описал именно для понятности желаемой логики работы. а как это грамотно прописать?
либо другой способ решения вопроса, подскажите пожалуйста, а то каждую пятницу после соревнований безумно много времени трачу и на самих соревнованиях, во время заездов очень долго колупать таблицу, которую видят зрители, на их глазах, не очень красиво, несмотря на декоративное оформление
если не сложно, ответ пожалуйста на Контакт удален. Нарушение Правил форума
спасибо большое вашему форуму
[moder]Пример файла покажите[/moder] arhboy
на другой странице результаты за конкретный день заездов, но не всех участников вообще, а только тех, кто ездили. например:
72 дима бмв
74 юра ягуар
сейчас построчно на листе(2) результатов забиты формулой ссылки на тот лист, т.е. в ячейках
=лист1!A72 =лист1!B72 =лист1!C72
=лист1!A74 =лист1!B74 =лист1!C74
то есть, для ввода результатов мне нужно вбивать формулой ячейку ряда A, потом брать за крестик, тянуть всю строчку, тогда по аналогии эксель подхватывает данные имени и машины участника. и так с каждой строчкой вручную
а хотелось бы, чтобы просто вводишь любую цифру и остальные строчки подхватывали данные, относительно этой цифры. т.е. технически столбец А может быть просто цифрами, вводимыми вручную (в ссылке на номер участника смыысла нет), а в столбцах B и C - формула и тогда строчка должна работать так:
72(цифрой) =лист1!B(ЛИСТ2!A1) =лист1!С(ЛИСТ2!A1)
то есть вопрос сводится к тому, как цифровую часть координаты ячейки задать не фиксированной цифрой, а цифрой, подхватываемой из другой ячейки с числовым значением? т.е. допустим не B1, а B(=A1)
понятно, в синтаксисе, как я написал это не работает, описал именно для понятности желаемой логики работы. а как это грамотно прописать?
либо другой способ решения вопроса, подскажите пожалуйста, а то каждую пятницу после соревнований безумно много времени трачу и на самих соревнованиях, во время заездов очень долго колупать таблицу, которую видят зрители, на их глазах, не очень красиво, несмотря на декоративное оформление
если не сложно, ответ пожалуйста на Контакт удален. Нарушение Правил форума
спасибо большое вашему форуму
[moder]Пример файла покажите[/moder] Автор - arhboy
Дата добавления - 04.02.2016 в 11:22
Выкладываю код для позиционирования формы пока есть свободная минута :).
Код основан на стандартных возможностях экселя делать это. Короткое описание:
mod_Functions - функции для перевода пикселей в точки и точек в пиксели
mod_GetDesktopMonitor - получение DPI системы и разрешения монитора
mod_GetRectForExcel2007Plus - получение прямоугольника координат ячейки в точках
mod_SetFormPosition - модуль позиционирования. Фиксит выход за пределы экрана, обрабатывает настройки и размещает форму
mod_Test - тестовый код
В данном тестовом файла форма вызывается двойным кликом по ячейке.
Можно задавать предпочтительную позицию формы при вызове процедуры позиционирования. Примеры:
[vba]
Call SetFormPosition(Form, ActiveCell)
' Позиция задается в аргументах процедуры
' Call SetFormPosition(Form, ActiveCell, -1, 1, -1, -1)
' Call SetFormPosition(Form, ActiveCell, 1, 1, -1, 1)
' Call SetFormPosition(Form, ActiveCell, 1, 1, 1, 1)
' Call SetFormPosition(Form, ActiveCell, 1, -1, -1, -1)
Если кто-то знает, как получить рабочую область экрана без WinAPI, пишите )
Выкладываю код для позиционирования формы пока есть свободная минута :).
Код основан на стандартных возможностях экселя делать это. Короткое описание:
mod_Functions - функции для перевода пикселей в точки и точек в пиксели
mod_GetDesktopMonitor - получение DPI системы и разрешения монитора
mod_GetRectForExcel2007Plus - получение прямоугольника координат ячейки в точках
mod_SetFormPosition - модуль позиционирования. Фиксит выход за пределы экрана, обрабатывает настройки и размещает форму
mod_Test - тестовый код
В данном тестовом файла форма вызывается двойным кликом по ячейке.
Можно задавать предпочтительную позицию формы при вызове процедуры позиционирования. Примеры:
[vba]
Call SetFormPosition(Form, ActiveCell)
' Позиция задается в аргументах процедуры
' Call SetFormPosition(Form, ActiveCell, -1, 1, -1, -1)
' Call SetFormPosition(Form, ActiveCell, 1, 1, -1, 1)
' Call SetFormPosition(Form, ActiveCell, 1, 1, 1, 1)
' Call SetFormPosition(Form, ActiveCell, 1, -1, -1, -1)
Если кто-то знает, как получить рабочую область экрана без WinAPI, пишите ) nerv
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
YM 41001156540584 / WM WMR R21924176233
Выкладываю код для позиционирования формы пока есть свободная минута :).
Код основан на стандартных возможностях экселя делать это. Короткое описание:
mod_Functions - функции для перевода пикселей в точки и точек в пиксели
mod_GetDesktopMonitor - получение DPI системы и разрешения монитора
mod_GetRectForExcel2007Plus - получение прямоугольника координат ячейки в точках
mod_SetFormPosition - модуль позиционирования. Фиксит выход за пределы экрана, обрабатывает настройки и размещает форму
mod_Test - тестовый код
В данном тестовом файла форма вызывается двойным кликом по ячейке.
Можно задавать предпочтительную позицию формы при вызове процедуры позиционирования. Примеры:
[vba]
Call SetFormPosition(Form, ActiveCell)
' Позиция задается в аргументах процедуры
' Call SetFormPosition(Form, ActiveCell, -1, 1, -1, -1)
' Call SetFormPosition(Form, ActiveCell, 1, 1, -1, 1)
' Call SetFormPosition(Form, ActiveCell, 1, 1, 1, 1)
' Call SetFormPosition(Form, ActiveCell, 1, -1, -1, -1)
Если кто-то знает, как получить рабочую область экрана без WinAPI, пишите ) Автор - nerv
Дата добавления - 07.07.2013 в 12:06
Разрешите выразить глубокое уважение
Давно слежу за этой очень не простой темой
Первый раз удивился, когда узнал, как задача решается с примененем невидимого объекта ChartObject - неожиданно, изящно !
Второй раз, когда понял, что начиная с 2007 этот вариант перестал работать
Третий раз - когда познакомился с идеями, высказанными здесь и на Планете
Так это еще не все.
Саш, я поклонник твоего таланта!
Разрешите выразить глубокое уважение
Давно слежу за этой очень не простой темой
Первый раз удивился, когда узнал, как задача решается с примененем невидимого объекта ChartObject - неожиданно, изящно !
Второй раз, когда понял, что начиная с 2007 этот вариант перестал работать
Третий раз - когда познакомился с идеями, высказанными здесь и на Планете
Так это еще не все.
Саш, я поклонник твоего таланта! v__step
и чем это поможет?
v__step, не преувеличивай
и чем это поможет?
v__step, не преувеличивай nerv
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
YM 41001156540584 / WM WMR R21924176233
и чем это поможет?
v__step, не преувеличивай Автор - nerv
Дата добавления - 09.07.2013 в 02:03
Задача известна своей сложностью
Буллен, Бови, Грин в своих книгах очень серьезно обсуждают ее, предлагают решение (оно давно перестало работать ). Твои решения на сегодняшний день - единственные - это мотив моего искреннего уважения
Задача известна своей сложностью
Буллен, Бови, Грин в своих книгах очень серьезно обсуждают ее, предлагают решение (оно давно перестало работать ). Твои решения на сегодняшний день - единственные - это мотив моего искреннего уважения v__step
точно не использует API и возвращается абсолютная ссылка на левую верхнюю видимую в окне ячейку с учетом текущего состояния прокрутки как текст с префиксом "$A:".
Что мешает позиционировать форму используя эту формулу как переменную адреса на листе?
точно не использует API и возвращается абсолютная ссылка на левую верхнюю видимую в окне ячейку с учетом текущего состояния прокрутки как текст с префиксом "$A:".
Что мешает позиционировать форму используя эту формулу как переменную адреса на листе? Serge_007
точно не использует API и возвращается абсолютная ссылка на левую верхнюю видимую в окне ячейку с учетом текущего состояния прокрутки как текст с префиксом "$A:".
Что мешает позиционировать форму используя эту формулу как переменную адреса на листе? Автор - Serge_007
Дата добавления - 09.07.2013 в 16:21
zvi еще предлагал )
могу повторить: то, что форма выводится справа от ячейки, можно изменить в параметрах, передаваемых процедуре SetFormPosition. Т.е. она может выводится слева, сверху, снизу и т.д. Надо только единичками пожанглировать. Вместе с тем, если форма не помещается в пределах экрана, она будет расположена с противоположной стороны ячейки (верх/низ, лево/право) в зависимости от настроек.
zvi еще предлагал )
могу повторить: то, что форма выводится справа от ячейки, можно изменить в параметрах, передаваемых процедуре SetFormPosition. Т.е. она может выводится слева, сверху, снизу и т.д. Надо только единичками пожанглировать. Вместе с тем, если форма не помещается в пределах экрана, она будет расположена с противоположной стороны ячейки (верх/низ, лево/право) в зависимости от настроек. nerv
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
YM 41001156540584 / WM WMR R21924176233
zvi еще предлагал )
могу повторить: то, что форма выводится справа от ячейки, можно изменить в параметрах, передаваемых процедуре SetFormPosition. Т.е. она может выводится слева, сверху, снизу и т.д. Надо только единичками пожанглировать. Вместе с тем, если форма не помещается в пределах экрана, она будет расположена с противоположной стороны ячейки (верх/низ, лево/право) в зависимости от настроек. Автор - nerv
Дата добавления - 09.07.2013 в 21:32
и? вы вообще его код глядели, пробовали? Он как бэ не работает должны ообразом, кроме того
Note also that FormPositioner does not work on split windows or frozen panes. Support for split windows and frozen panes will be added in a later release.
и? вы вообще его код глядели, пробовали? Он как бэ не работает должны ообразом, кроме того
Note also that FormPositioner does not work on split windows or frozen panes. Support for split windows and frozen panes will be added in a later release.
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
YM 41001156540584 / WM WMR R21924176233
и? вы вообще его код глядели, пробовали? Он как бэ не работает должны ообразом, кроме того
Note also that FormPositioner does not work on split windows or frozen panes. Support for split windows and frozen panes will be added in a later release.
nerv, Уважаемый коллега, ваш код не работает, если происходит select ячейки в скрытом столбце или области листа "под закрепленными областями.
Ниже подправленный код (из опубликованного ранее по ссылке в посте выше) - в нем эта проблема тоже исправлена (код не хаять - писан на коленке. кто перепишет и сделает лучше - скажу спасибо):
nerv, Уважаемый коллега, ваш код не работает, если происходит select ячейки в скрытом столбце или области листа "под закрепленными областями.
Ниже подправленный код (из опубликованного ранее по ссылке в посте выше) - в нем эта проблема тоже исправлена (код не хаять - писан на коленке. кто перепишет и сделает лучше - скажу спасибо): StepInLik
Ниже подправленный код (из опубликованного ранее по ссылке в посте выше) - в нем эта проблема тоже исправлена (код не хаять - писан на коленке. кто перепишет и сделает лучше - скажу спасибо): Автор - StepInLik
Дата добавления - 21.08.2013 в 16:28
ваш код не работает, если происходит select ячейки в скрытом столбце или области листа "под закрепленными областями
насколько помню, это проблема решаема, но мне некогда этим заниматься
Ниже подправленный код (из опубликованного ранее по ссылке в посте выше) - в нем эта проблема тоже исправлена (код не хаять - писан на коленке. кто перепишет и сделает лучше - скажу спасибо)
ваш код не работает, если происходит select ячейки в скрытом столбце или области листа "под закрепленными областями
насколько помню, это проблема решаема, но мне некогда этим заниматься
Ниже подправленный код (из опубликованного ранее по ссылке в посте выше) - в нем эта проблема тоже исправлена (код не хаять - писан на коленке. кто перепишет и сделает лучше - скажу спасибо)
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
YM 41001156540584 / WM WMR R21924176233
ваш код не работает, если происходит select ячейки в скрытом столбце или области листа "под закрепленными областями
насколько помню, это проблема решаема, но мне некогда этим заниматься
Ниже подправленный код (из опубликованного ранее по ссылке в посте выше) - в нем эта проблема тоже исправлена (код не хаять - писан на коленке. кто перепишет и сделает лучше - скажу спасибо)
в предложенном варианте - лишь функции определения координат. там нечего запускать. опубликовал лишь в ознакомительных целях способа решения данной проблемы. кому нужно - изучит, переделает и подключит. (кроме того, они определяют лишь примерные координаты ячейки).
в предложенном варианте - лишь функции определения координат. там нечего запускать. опубликовал лишь в ознакомительных целях способа решения данной проблемы. кому нужно - изучит, переделает и подключит. (кроме того, они определяют лишь примерные координаты ячейки). StepInLik
в предложенном варианте - лишь функции определения координат. там нечего запускать. опубликовал лишь в ознакомительных целях способа решения данной проблемы. кому нужно - изучит, переделает и подключит. (кроме того, они определяют лишь примерные координаты ячейки). Автор - StepInLik
Дата добавления - 22.08.2013 в 10:18
если у вас не получилось, это еще не значит, что у меня не получится
лично у меня ознакомится не получилось
вы телефон в магазине купили, а он не работает. Вы к продавцу - почему не работает? А он - "у нас все телефоны не работают. кому нужно - изучит, переделает и подключит"
Иными словами на данный момент я нахожу ваши ссылки/решения чуть менее бесполезными, чем полностью Я пользователь. У меня "не работает".
если у вас не получилось, это еще не значит, что у меня не получится
лично у меня ознакомится не получилось
вы телефон в магазине купили, а он не работает. Вы к продавцу - почему не работает? А он - "у нас все телефоны не работают. кому нужно - изучит, переделает и подключит"
Иными словами на данный момент я нахожу ваши ссылки/решения чуть менее бесполезными, чем полностью Я пользователь. У меня "не работает". nerv
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
YM 41001156540584 / WM WMR R21924176233
если у вас не получилось, это еще не значит, что у меня не получится
лично у меня ознакомится не получилось
вы телефон в магазине купили, а он не работает. Вы к продавцу - почему не работает? А он - "у нас все телефоны не работают. кому нужно - изучит, переделает и подключит"
Иными словами на данный момент я нахожу ваши ссылки/решения чуть менее бесполезными, чем полностью Я пользователь. У меня "не работает". Автор - nerv
Дата добавления - 22.08.2013 в 15:02
nerv. Мое решение не для пользователей, а для тех, кто умеет программировать, интерисуется алгоритмами, занимается самообразованием и просто - не ленится думать (если его действительно волнует проблема позиционирования окна и нахождения координат ячейки на экране). Тем, кому не просто нужно вставить код и использовать, а тем, кто хочет понять - как это работает. Мое предложение - не магазин, это схема "сделай сам" если хочешь. Пусть будет так, да. Если вы - только пользователь, то это не для вас. Извините.
На счет получилось - не получилось. Фразы не понял. Это - игра слов?
nerv. Мое решение не для пользователей, а для тех, кто умеет программировать, интерисуется алгоритмами, занимается самообразованием и просто - не ленится думать (если его действительно волнует проблема позиционирования окна и нахождения координат ячейки на экране). Тем, кому не просто нужно вставить код и использовать, а тем, кто хочет понять - как это работает. Мое предложение - не магазин, это схема "сделай сам" если хочешь. Пусть будет так, да. Если вы - только пользователь, то это не для вас. Извините.
На счет получилось - не получилось. Фразы не понял. Это - игра слов? StepInLik
Функция АДРЕС() возвращает текстовое значение в виде адреса ячейки.
Синтаксис функции
АДРЕС(номер_строки, номер_столбца, [тип_ссылки], [a1], [имя_листа])
Номер_строки Обязательный аргумент. Номер строки, используемый в ссылке на ячейку.
Номер_столбца Обязательный аргумент. Номер столбца, используемый в ссылке на ячейку.
Последние 3 аргумента являются необязательными.
[Тип_ссылки] Задает тип возвращаемой ссылки:
- 1 или опущен: абсолютная ссылка , например $D$7
- 2 : абсолютная ссылка на строку; относительная ссылка на столбец, например D$7
- 3 : относительная ссылка на строку; абсолютная ссылка на столбец, например $D7
- 4 : относительная ссылка, например D7
[а1] Логическое значение, которое определяет тип ссылок: А1 или R1C1. При использовании ссылок типа А1 столбцы обозначаются буквами, а строки — цифрами, например D7 . При использовании ссылок типа R1C1 и столбцы, и строки обозначаются цифрами, например R7C5 (R означает ROW - строка, С означает COLUMN - столбец). Если аргумент А1 имеет значение ИСТИНА или 1 или опущен, то функция АДРЕС() возвращает ссылку типа А1; если этот аргумент имеет значение ЛОЖЬ (или 0), функция АДРЕС() возвращает ссылку типа R1C1.
Чтобы изменить тип ссылок, используемый Microsoft Excel, нажмите кнопку Microsoft Office , затем нажмите кнопку Параметры Excel (внизу окна) и выберите пункт Формулы . В группе Работа с формулами установите или снимите флажок Стиль ссылок R1C1 .
[Имя_листа] Необязательный аргумент. Текстовое значение, определяющее имя листа, которое используется для формирования внешней ссылки. Например, формула =АДРЕС(1;1;;;"Лист2") возвращает значение Лист2!$A$1.
Примеры
Как видно из рисунка ниже (см. файл примера ) функция АДРЕС() возвращает адрес ячейки во всевозможных форматах.
Чаще всего адрес ячейки требуется, чтобы вывести значение ячейки. Для этого используется другая функция ДВССЫЛ() .
Формула =ДВССЫЛ(АДРЕС(6;5)) просто выведет значение из 6-й строки 5 столбца (Е). Эта формула эквивалентна формуле =Е6 .
Возникает вопрос: "Зачем весь этот огород с функцией АДРЕС() ?". Дело в том, что существуют определенные задачи, в которых использование функции АДРЕС() очень удобно, например Транспонирование таблиц или Нумерация столбцов буквами или Поиск позиции ТЕКСТа с выводом значения из соседнего столбца.
Александр Шабля
дата публикации 26-05-2006 08:58
- Как записать значения сразу в несколько ячеек?
- Как определить область выделенных ячеек и ее границы?
- Как записывать значения в ячейку (Value, Value2, Text, Formula)?
- Что работает быстрее, запись в Range или Cells?
- Что такое UsedRange? Как найти последнюю используемую ячейку? Что такое SpecialCells? Что такое CurrentRegion?
- Как получить адрес ячейки?
- Нужно ли выделять ячейку/область для того чтобы вносить в нее данные?
- В чем отличие Range.Activate от Range.Select?
- Как установить свойству ячейки NumberFormat "общий" формат, текстовый формат, формат даты, числа, валюты?
- Передаю в ячейку 385.00, а показывает 385. Почему?
- При записи в ячейку чисел как текста, целые числа автоматический преобразуются в численный формат, а вещественные нет. Вследствие чего возникает ошибка "число сохранено как текст".
- Делаю экспорт в Excel, допустим, текст "000069987", а он выводит в ячейку 69987, т.е. удаляет лидирующие нули. Как мне сделать, чтобы в ячейку выводилось 000069987?
- Как очистить область ячеек? Как определить что ячейка Excel пустая?
- Как задать имя области ячеек? Как обратиться к ячейке по имени? Как определить, что такое имя существует на листе? Как задать имя области ячеек?
- Как объеденить ячейки? Как узнать, что ячейка входит в объединенную область и определить границы этой области?
- Как записывать данные из вариантного массива в Excel?
- Как прочесть данные из области ячеек в массив?
- Почему при выгрузке данных в Excel не могу записать строк больше 65536?
- Как писать в ячейки нескольких листов сразу?
- Как изменить цвет фона и шрифта ячейки?
- Как изменить атрибуты шрифта части текста в ячейке (цвет, размер, имя)?
- Как узнать позицию курсора в редактируемой по F2 ячейке или в строке формул и дописать в нее текст?
- Как изменить выравнивание/угол наклона текста, отступы в ячейке?
- Как задать границы для области ячеек (Borders)?
- Как скопировать форматы и формулы из строки в нижележащую область (AutoFill)?
- Как скопировать область ячеек с сохранением всех форматов? Как скопировать только значения ячейки?
- Как скопировать область, чтоб сохранились размеры строк/столбцов?
- Как сделать автоперенос строк в ячейке?
- Как вставить несколько строк/столбцов? Как удалить несколько строк/столбцов? Как прятать/показывать строки и столбцы? Как программно изменить высоту строки или ширину столбца?
- Как подогнать высоту или ширину ячеек для отображения всего текста?
- Как сделать автоподбор высоты строк для объединенных ячеек?
- Как программно "заморозить" строки/столбцы?
- Как добавить примечание к ячейке? Как удалить примечание? Как изменить атрибуты шрифта примечания?
- Как добавить URL? Как сделать гиперссылку для рисунка?
- Как отсортировать область ячеек?
- Как сделать поиск значений в области ячеек или по всему листу?
- Как, имея ссылку на ячейку, узнать имя листа, которому она принадлежит? Узнать имя книги?
Константа lcid в примерах определена как
Cells, Range, Rows, Columns
Объект Cells предназначен для доступа к ячейкам в стиле R1C1 к одной ячейке. Range — в стиле A1 к области (коллекции) ячеек. Удобство объекта Range в том, что можно, при использовании оператор with, обращаться к нескольким свойствам и методам. Объект Rows возвращает коллекцию строк и Columns — коллекцию столбцов объекта Range (вместо этих свойств можно использовать свойства EntireRow и EntireColumn).
Как записать значения сразу в несколько ячеек?
Для записи в несколько (область) ячеек используется объект Range (ExcelRange). Пример как можно получить объект Range для области ячеек.
Заметьте, что при обращении к свойству Range и Cells объекта Range, адресация будет уже работать относительно области, указанной в объекте Range. Например, нижеприведенный код будет указывать не на ячейку "A1", как сразу можно подумать, а на "C2":
А вот такой код вернет ячейку с адресом "D3":
Как определить область выделенных ячеек и ее границы?
Чтоб получить область (или области) выделенных ячеек нужно получить объект Range из свойства Selection объекта Excel.Application и обратиться к свойству Range.Areas.
Как записывать значения в ячейку (Value, Value2, Text, Formula)?
Для записи локализованных ("русских") форматов данных и формул используются свойства с окончанием Local, например FormulaLocal.
Если вы попробуете записать макрос в Excel, то увидите, что запись значений ведется в свойство FormulaR1C1. С тем же успехом можно писать и в свойство Formula.
Внимание! При записи в свойство Formula, если это не формула, следите, чтобы текст не начинался с символов "=", "+", "-", "*", "/". Или просто к тексту прибавляйте в начало знак апострофа (код символа 39):
Что работает быстрее, запись в Range или Cells?
Для перевода из координат R1C1 в A1 удобно пользоваться "самодельными" функциями, например:
Что такое UsedRange? Как найти последнюю используемую ячейку? Что такое SpecialCells? Что такое CurrentRegion?
UsedRange — прямоугольная область, включающая все заполненные ячейки и незаполненные, в промежутках между заполненными ячейками, на листе. Координаты области не обязательно начинаются в ячейке A1. Также для определения координат различных ячеек можно использовать объект SpecialCells, например, с параметром xlCellTypeLastCell для нахождения последней (крайней справа снизу) используемой ячейки. CurrentRegion возвращает область вокруг ячейки, выделенную пустыми (незаполненными) ячейками. End — находит последнюю ячейку в строке или столбце перед первой попавшейся пустой ячейкой, или первую заполненную, если вызывать метод End для пустой ячейки.
Как получить адрес ячейки?
Нужно ли выделять ячейку/область для того чтобы вносить в нее данные?
Не нужно. Достаточно указать адрес области ячеек в объекте Range для выбранного объекта Worksheet (и/или Workbook). Любой Select или Activate только замедлит работу вашей программы. Кроме того, метод Select возможно вызвать только на активном листе активной книги! Не используйте Select и Activate без необходимости.
В чем отличие Range.Activate от Range.Select?
И метод Activate и Select делают одно и то же — выделяют (активируют) ячейку. Разница лишь в том, что метод Activate позволяет выбрать только одну ячейку на листе или сделать активной любую ячейку в области, выделенной методом Select. Метод Select позволяет выделять одну и более областей ячеек.
Как установить свойству ячейки NumberFormat "общий" формат, текстовый формат, формат даты, числа, валюты?
Для правильной работы NumberFormat с английскими форматами не забудьте подключить модуль TrDispCall
Передаю в ячейку 385.00, а показывает 385. Почему?
Потому что в ячейке установлен "общий" формат (general), который отсекает не значащие цифры. В данном примере всегда будут указываться 2 цифры после запятой:
При записи в ячейку чисел как текста, целые числа автоматический преобразуются в численный формат, а вещественные нет. Вследствие чего возникает ошибка "число сохранено как текст".
Лучше числа не записывать в ячейку как текст и не надеяться, что Excel всегда сможет "на лету" преобразовать текст верно. Вы никогда не можете быть уверенными, какие локальные установки формата чисел будут установлены на компьютере пользователя. Всегда перед записью переводите записываемые числа из текста в число (Float или Integer) в своей программе.
Делаю экспорт в Excel, допустим, текст "000069987", а он выводит в ячейку 69987, т.е. удаляет лидирующие нули. Как мне сделать, чтобы в ячейку выводилось 000069987?
При записи текста, содержащего одни цифры, Excel пытается его преобразовать в число. Чтобы избажать такой "помощи" со стороны Excel'я перед записью в ячейку установите в свойтво NumberFormat текстовый формат или добавьте перед текстом символ апострофа "'" (код символа 39).
Как очистить область ячеек? Как определить что ячейка Excel пустая?
Чтобы радикально очистить ячейки (данные, форматы, примечания и т.д.) можно вызвать метод Clear.
Как задать имя области ячеек? Как обратиться к ячейке по имени? Как определить, что такое имя существует на листе? Как задать имя области ячеек?
Если вы зададите области имя уже существующее в листе, то старое имя будет утеряно, т.е. получится перезапись имени. Присваивать имена области ячеек можно и не активному листу. Задавать адрес ячейки можно и как текст (не обязательно ссылку на объект Range), а также можно в стиле R1C1, указав адрес области ячеек в параметре RefersToR1C1.
Как объеденить ячейки? Как узнать, что ячейка входит в объединенную область и определить границы этой области?
Смотрите дальше как сделать автоподбор высоты строк для объединенных ячеек.
Как записывать данные из вариантного массива в Excel?
Запись данных из вариантного массива (VarArray) очень хорошо расписана в статьях "По волнам интеграции… III" и "Зарисовка на тему экспорта в Excel". Для разнообразия, приведу еще раз этот вариант быстрого экспорта в Excel.
Внимание! Если вы пытаетесь записать в область одну строку, то МАССИВ все равно ДОЛЖЕН БЫТЬ ДВУМЕРНЫМ! Т.е. varData := VarArrayCreate([1, 1, 1, ColumnCount], varVariant); При записи массива вы должны указать в адресе области ячеек Range ВСЮ область для заполнения.
Как прочесть данные из области ячеек в массив?
Точно также как и при экспорте, только самому создавать массив не нужно — Excel все сделает за вас. В принципе, после получения данных в массив, Excel уже не нужен, и от него можно отсоединиться.
Почему при выгрузке данных в Excel не могу записать строк больше 65536?
Потому что это максимально возможное количество строк объекта Worksheet. Если вы записываете больше строк, чем 65536, то помещайте их на следующий лист книги — благо, что количество листов ограничено только оперативной памятью комьютера.
Как писать в ячейки нескольких листов сразу?
Чтобы занести данные в несколько листов сразу, вы можете объединить листы методом Worksheets.Select и воспользоваться методом FillAcrossSheets
Как изменить цвет фона и шрифта ячейки?
Смотрите свойства Font и Interior объекта Range
Как изменить атрибуты шрифта части текста в ячейке (цвет, размер, имя)?
Чтобы изменить часть текста ячейки можно воспользоваться свойством Characters объекта Range.
Как узнать позицию курсора в редактируемой по F2 ячейке или в строке формул и дописать в нее текст?
Никак! При входе в режим редактирования ячейки объект Excel.Application становится полностью недоступен через OLE.
Как изменить выравнивание/угол наклона текста, отступы в ячейке?
Смотрите свойства HorizontalAlignment, VerticalAlignment, AddIndent и Orientation объекта Range
Как задать границы для области ячеек (Borders)?
Смотрите свойство Borders объекта Range.
Как скопировать форматы и формулы из строки в нижележащую область (AutoFill)?
Это как раз самый удобный метод копирования форматов и формул для расширения области данных при использовании шаблонов. Подразумевается, что между НАЧАЛО/КОНЕЦ находится подготовленные ячейки шаблона (форматирование, именованная область DataRange для данных).
Как скопировать область ячеек с сохранением всех форматов? Как скопировать только значения ячейки?
Метод Copy позволяет не только копировать содержимое области ячеек в буфер обмена (при пустом параметре), но и задать конкретный адрес ячеек для копирования. Если вы хотите вставить из буфера только некоторые параметры скопированной в БО ячейки, то для вставки используйте метод PasteSpecial, указав необходимый XlPasteType (первый аргумент).
Как скопировать область, чтоб сохранились размеры строк/столбцов?
К сожалению, при копировании не сохраняются размеры строк и столбцов. Для сохранения размеров строк и столбцов можно использовать несколько способов:
Как сделать автоперенос строк в ячейке?
Чтобы сделать перенос слов в ячейке установите свойство WrapText объекта Range.
Как вставить несколько строк/столбцов? Как удалить несколько строк/столбцов? Как прятать/показывать строки и столбцы? Как программно изменить высоту строки или ширину столбца?
Как подогнать высоту или ширину ячеек для отображения всего текста?
Для отображения всего текста в ячейке или области ячеек используйте метод AutoFit объекта Range.
Как сделать автоподбор высоты строк для объединенных ячеек?
Как известно, метод AutoFit для подбора высоты объединенных ячеек не срабатывает. Для этого был придуман простой метод (взят отсюда и просто адаптирован под Delphi). Работает для объеденных ячеек в одной строке. Просто укажите одну из объединенных ячеек области (свойство WrapText должно быть включено).
Конечно, функция должна быть вызвана для каждой строки, что, естественно, будет работать довольно долго. Поэтому старайтесь не использовать перенос текста в объединенных ячейках.
Как программно "заморозить" строки/столбцы?
Как добавить примечание к ячейке? Как удалить примечание? Как изменить атрибуты шрифта примечания?
Комментарий — это своеобразный объект Shape, привязанный к определенному объекту Range.
Как добавить URL? Как сделать гиперссылку для рисунка?
Как отсортировать область ячеек?
Пример сортировки всех данных на листе по первому, второму и третьему столбцам.
Как сделать поиск значений в области ячеек или по всему листу?
Как, имея ссылку на ячейку, узнать имя листа, которому она принадлежит? Узнать имя книги?
Получить ссылку на объект Worksheet, содержащий данную ячейку можно из свойства Parent.
Читайте также: