Remkomplekty.ru

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Адрес активной ячейки в excel

Адрес активной ячейки в excel

вполне подходит — только запоминайте адрес прямо в ячейку на листе.

С другой стороны, сам Excel действительно сохраняет где-то в книге адреса всех последних активных ячеек каждого листа, так что задачка интересная. Быстрое гугление не дало ответа на вопрос

Пользователь и VB-программа (для краткости — демон) работают параллельно.
Активация Листа1 демоном ведет к деактивации Листа2 пользователя,
на котором пользователь в это время работает. Это недопустимо.

Кроме того, демон м.б. стартован после того как пользователь
побывал на Листе1 демона и покинул его — «вручную деактивировал» Лист1.
Поэтому демону нечего запоминать «в ячейку на листе»[1].
В процессе совместной работы пользователя и демона, у демона
м.б. несколько жизней (от своего старта до своего завершения),
и очередной старт жизни м.б. необязательно на Листе1.

Почему-то народ пытается обойти именно
изначально сформулированное, главное (и единственное!)
условие задачки — запрет активации неактивного листа))))

Вы не понимаете? Excel не поддерживает такого функционала (по крайней мере, стандартными средствами).

Вам же советуют реальный обходной путь. Который исходит из того, что «текущую ячейку» на неактивном листе может изменить только пользователь. Который при этом должен хотя бы раз активировать лист. И затем деактивировать (!) А вы ударяетесь в пояснения, не имеющие отношения к задаче, — видимо, не знаете, как правильно организовать событийную модель своей задачи.

..и вообще-то при Worksheet_Deactivate для Листа1
в ActiveCell.Address(0, 0) содержится
адрес ячейки Листа2 НА который делается переход
а не
адрес ячейки Листа1 С которого делается переход..

[admin]Оформляйте коды тегами![/admin]

Я придумал немного другой вариант (с доп.переменной в модуле каждого «нужного» листа), построенный на исключениях.
Правда, что-то там не дает переключаться на другие открытые книги (есть обход — можно создать новую книгу, а в ней уже открыть нужную, но тогда до закрытия «новооткрытого» — не вернуться в книгу с демоном), хотя и продолжает считать и записывать верно. Что-то там с событиями — надо посмотреть.
Зато в рабочей книге даже удаление/добавление/копирование листов (во время работы демона) — без нареканий (при добавлении — надо озаботиться прописыванием переменной, при копировании — достаточно переместить курсор в нужную ячейку. Ибо демон пропускает активный лист при обработке, а пишет только на неактивные. И кода — минимум

Да, ещё. Переменные в модулях листа — Variant с расчетом на Object/Range, поэтому смотрите внимательно, как выполняете присваивание. Зато можно обращаться прямо к «активной» ячейке и её свойствам/методам. Конечно, можно сделать String (будет надёжнее при написании кода), но это уж проблемы разработчика.

Ссылка Excel На Текущую Ячейку

Как получить ссылку на текущую ячейку?

например, если я хочу отобразить ширину столбца A, я мог бы использовать следующее:

однако, я хочу, чтобы формула была примерно такой:

11 ответов:

создайте именованную формулу с именем THIS_CELL

  1. в текущем листе выберите ячейку A1 (это важно!)
  2. открыть Name Manager (Ctl+F3)
  3. клик New.
  4. введите » THIS_CELL «(или просто «это», что является моим предпочтением) в Name:

введите следующую формулу в Refers to:

Примечание: убедитесь, что ячейка A1 выбрана. Эта формула является относительно активной ячейки.

под Scope: выберите Workbook .

  • клик OK закрыть Name Manager
  • используйте формулу на листе точно так, как вы хотели

    EDIT: лучшее решение, чем использование INDIRECT()

    стоит отметить, что решение, которое я дал, должно быть предпочтительнее любого решения с использованием @и imix это ниже для вариации этой идеи (с использованием ссылок на стиль RC). В этом случае вы можете использовать =!RC на THIS_CELL именованная формула диапазона, или просто использовать RC напрямую.

    вы могли бы использовать

    несколько лет слишком поздно:

    просто для полноты картины хочу дать еще один ответ:

    во-первых, перейти к Excel-Options ->Формулы и включения ссылки R1C1. Тогда используйте

    RC всегда ссылается на текущую строку, текущий столбец, т. е.»эта ячейка».

    решение Рика Тичи это в основном настройка, чтобы сделать то же самое возможно в A1 эталонный стиль (см. также GSerg это!—18—> к ответу и записке Джоуи комментарии на ответ Патрика Макдональда).

    =ADDRESS(ROW(),COLUMN(),4) даст нам относительный адрес текущей ячейки. =INDIRECT(ADDRESS(ROW(),COLUMN()-1,4)) даст нам содержимое ячейки слева от текущей ячейки =INDIRECT(ADDRESS(ROW()-1,COLUMN(),4)) даст нам содержимое ячейки над текущей ячейкой (отлично подходит для расчета текущих итогов)

    Читать еще:  Excel вылетает при открытии файла

    используя CELL () функция возвращает информацию о последней измененной ячейке. Итак, если мы введем новую строку или столбец CELL () ссылка будет затронута и не будет никакой текущей ячейки длиннее.

    A2 уже является относительной ссылкой и изменится при перемещении ячейки или копировании формулы.

    без косвенных(): =CELL(«width», OFFSET($A,ROW()-1,COLUMN()-1) )

    внутри таблицы вы можете использовать [@] , который (к сожалению) Excel автоматически расширяет до Table1[@] но это действительно работает. (Я использую Excel 2010)

    например, при наличии двух столбцов [Change] и [Balance] , поставив в

    Я нашел лучший способ справиться с этим (для меня) использовать следующее:

    надеюсь, что это помогает.

    есть лучший способ, который является более безопасным и не замедлит ваше приложение. Как Excel настроен, ячейка может иметь либо значение, либо формулу; формула не может ссылаться на свою собственную ячейку. Вы в конечном итоге с бесконечным циклом, так как новое значение приведет к другому вычислению. . Используйте вспомогательный столбец для вычисления значения на основе того, что вы помещаете в другую ячейку. Например:

    столбец A является истинным или ложным, столбец B содержит денежное значение, столбец C содержит следующее формула: =B1

    теперь, чтобы вычислить, что столбец B будет выделен желтым цветом в условном формате, только если столбец A истинен, а столбец B больше нуля.

    затем вы можете скрыть столбец C

    EDIT: следующее неверно, потому что ячейка («ширина») возвращает ширину последние изменения клеток.

    Адресация ячеек в Excel

    Неизвестный Excel

    Excel — это не деревянные счёты и не веревочка с узелками, которую инки применяли для своих нехитрых расчетов. Это инструмент, который по полной программе использует вычислительную мощь современных компьютеров для решения огромного числа задач: от бытовых до профессиональных. Подробнее.

    В этой статье более подробно разберём виды адресации ячеек в Excel. В обзорном видео я уже об этом кратко рассказывал, ну а сейчас пришла пора разъяснить эту тему более подробно.

    Для начала напомню, что у каждой ячейки в Excel есть свой уникальный адрес. Адрес может быть относительным и абсолютным. Что такое абсолютный и относительный адреса — об этом как-нибудь в другой раз.

    Относительный адрес может быть, например, таким:

    B3 — третья ячейка в столбце В.

    Однако на другом листе тоже может быть ячейка B3. Чтобы однозначно определить ячейку в пределах книги Excel, можно перед её адресом написать имя листа.

    Такой адрес в книге может выглядеть так:

    То есть здесь уже идёт речь не о какой-то абстрактной ячейке В3, а о ячейке В3, расположенной на листе с именем “Лист2”.

    Это только самые общие сведения об адресации ячеек в Excel, но для начала этого достаточно. Однако надо ещё рассказать о видах адресации.

    Формат адреса ячейки в Excel

    С одним форматом адреса вы уже знакомы. Это формат вида “буква-цифра”:

    Где Б — это буквенное обозначение столбца, а Ц — это номер строки. Таким образом, каждая ячейка относительно текущего листа имеет уникальный адрес. Например,

    А10 — это десятая строка в столбце А.

    Однако в Excel есть и другой формат адресации ячейки:

    где R — это ряд (строка), а С — это столбец. После буквы следует, соответственно, номер строки х и номер столбца у. Например:

    R3C7 — это третья строка и седьмой столбец, что в формате “буква-цифра” будет тем же адресом, что и G3.

    Лично мне больше нравится формат “буква-цифра”. И по умолчанию обычно такой формат и используется (видимо, он больше нравится не только мне, но и разработчикам Excel).

    Однако иногда (во всяком случае в Excel 2003 это случается) формат адреса ячейки почему-то сам собой меняется на RxCy. И тогда приходится менять его в настройках программы вручную.

    Начинающих это может ввести в состояние паники, потому что с первого раза найти эти настройки практически ни у кого не получается.

    Поэтому подсказываю. В Excel 2007 изменить стиль адреса ячеек можно так:

    1. Нажать кнопку ОФИС (в левом верхнем углу)
    2. Нажать кнопку ПАРАМЕТРЫ EXCEL
    3. Выбрать вкладку ФОРМУЛЫ
    4. Найти там строку “Стиль ссылок R1C1”

    Если вы поставите галочку напротив надписи “Стиль ссылок R1C1”, то адреса ячеек будут иметь формат RxCy. Если снимите галочку, то будет использоваться формат “буква-цифра”.

    Читать еще:  Как нарисовать линию в excel

    Компьютер для чайника

    В основе этой книги лежит курс лекций, специально разработанный для обучения базовым навыкам работы на компьютере пользователей одного из промышленных предприятий. Практически все эти пользователи работали с компьютером не один год но, как показала практика, большинство из них не знали элементарных вещей. Подробнее.

    Функция Получить.Ячейку

    Задача: вы хотите выделить все ячейки на листе, которые не содержат формул.

    Примечание Багузина. Именно эту задачу можно решить довольно просто, если вы пользуетесь версией Excel 2013 или более поздней. Примените функцию ЕФОРМУЛА(ссылка). Функция проверяет содержимое ячейки, и возвращает значение ИСТИНА или ЛОЖЬ. Однако подход Билла Джелена любопытен сам по себе, поскольку открывает окно в мир макрофункций (скорее всего, неизвестный большинству пользователей).

    Решение: до введения VBA, макросы писали на языке xlm (Excel Macro). Язык использовал макрофункции, т.е., функции листа макросов Excel 4.0. Этот язык до сих пор поддерживается Microsoft для совместимости с предыдущими версиями Excel (подробнее см. Что такое макрофункции?). Система макросов xlm является «пережитком», доставшимся нам от предыдущих версий Excel (4.0 и более ранних). Более поздние версии Excel все еще выполняют макросы xlm, но, начиная с Excel 97, пользователи не имеют возможности записывать макросы на языке xlm.

    Язык xlm среди прочих содержит функцию Получить.Ячейку (GET.CELL), которая предоставляет гораздо больше информации, чем современная функция ЯЧЕЙКА(). На самом деле, Получить.Ячейку может рассказать о 66 различных атрибутах ячейки, в то время, как функция ЯЧЕЙКА возвращает лишь 12 параметров. Функция Получить.Ячейку весьма полезна, за исключением одного «но»… Вы не можете ввести ее непосредственно в ячейку (рис. 1).

    Рис. 1. Функция Получить.Ячейку недоступна для ввода на листе Excel

    Скачать заметку в формате Word или pdf, примеры в формате Excel (с макросами)

    Однако есть обходной путь. Вы можете определить имя, основанное на функции, а затем ссылаться на это имя в любой ячейке. Например, чтобы выяснить, содержит ли ячейка A1 формулу, можно записать =Получить.Ячейку(48,А1). Здесь 48 – аргумент, отвечающий за анализ, является ли содержимое ячейки формулой. Для более универсального случая, когда вы хотите применить условное форматирование, воспользуйтесь формулой =Получить.Ячейку(48,ДВССЫЛ( » RC » ,ЛОЖЬ)). Если вы не знакомы с функцией ДВССЫЛ, советую почитать Примеры использования функции ДВССЫЛ (INDIRECT). Нам эта функция нужна для того, чтобы обозначить ссылку на ячейку, в которой мы сейчас находимся. Мы не можем указать никакую конкретную ячейку, поэтому используем ссылку в стиле R1C1, где RC означает относительную ссылку на текущую ячейку. В стиле ссылок А1 для ссылки на текущую ячейку нам бы потребовалось этот фрагмент формулы записать в виде =ДВССЫЛ(АДРЕС(СТРОКА();СТОЛБЕЦ();4)). Подробнее см. Зачем нужен стиль ссылок R1C1.

    Чтобы использовать формулу =Получить.Ячейку() для выделения ячеек с помощью условного форматирования, выполните следующие действия (для Excel 2007 или более поздней версии):

    1. Чтобы определить новое имя, пройдите по меню ФОРМУЛЫ –>Присвоить имя. В открывшемся окне (рис. 2) выберите подходящее имя, например, ЕслиФормула. В поле формула введите =Получить.Ячейку(48,ДВССЫЛ( » RC » ,ЛОЖЬ)). Нажмите Оk. Нажмите Закрыть.
    2. Выделите ячейки, к которым хотите применить условное форматирование (рис. 3); в нашем примере – это В3:В15.
    3. Пройдите по меню ГЛАВНАЯ –>Условное форматирование –>Создать правило. В открывшемся окне выберите пункт Использовать формулу для определения форматируемых ячеек. В нижней половине диалогового типа введите =ЕслиФормула, как показано на рис. 3. Excel может автоматически добавить кавычки =»ЕслиФормула». Уберите их. Нажмите кнопку Формат, в открывшемся окне Формат ячеек перейдите на вкладку Заливка и выберите цвет заливки. Нажмите Оk.

    Рис. 2. Окно Создание имени

    Рис. 3. Создание нового правила условного форматирования

    Чтобы выделить ячейки, которые не содержат формулу, используйте настройку формата =НЕ(ЕслиФормула).

    Будьте осторожны. Иногда при копировании ячеек, содержащих формулу, на другой лист, есть риск «обрушить» Excel (у меня такого не случилось ни разу).

    Альтернативные стратегии: преимущество описанного выше метода заключается в том, что форматирование будет автоматически обновляться всякий раз, когда кто-то меняет содержимое ячеек, заменяя формулы на константы или наоборот. Если вам просто нужно получить разовый снимок, какие ячейки содержат формулы, выполните следующие действия:

    1. Выберите все ячейки; для этого встаньте на одну из ячеек диапазона и нажмите Ctrl+А (А – английское).
    2. Нажмите Ctrl+G, чтобы открыть окно Переход.
    3. В левом нижнем углу этого окна нажмите кнопку Выделить.
    4. В открывшемся диалоговом окне Выделить группу ячеек выберите формулы, нажмите Ok.
    5. На закладке ГЛАВНАЯ выберите цвет заливки, например, красный.
    Читать еще:  Слишком много форматов ячеек excel 2020

    Синтаксис функции: ПОЛУЧИТЬ.ЯЧЕЙКУ(номер_типа; ссылка). Полный список первого аргумента функции Получить.Ячейку см., например, здесь. Обратите внимание, что в некоторых случаях функциональность современных версий Excel существенно изменилась, и функция не вернет допустимое значение. Для некоторых аргументов номер_типа удобнее использовать функцию ЯЧЕЙКА.

    Несколько примеров функции ПОЛУЧИТЬ.ЯЧЕЙКУ.

    Номер_типа = 1. Абсолютная ссылка левой верхней ячейки аргумента ссылка в виде текста в текущем стиле: $А$1 или R1C1 (рис. 4). Проще использовать формулу =ЯЧЕЙКА( » адрес » ;ссылка)

    Рис. 4. Определение адреса левой верхней ячейки диапазона

    Номер_типа = 63. Возвращает номер цвета заливки ячейки (рис. 5).

    Рис. 5. Определение номера цвета заливки ячейки

    Вопрос 19. VBA. Адресация ячеек в Excel. Ссылка на одиночную ячейку.

    Адресация ячеек в экселе.

    в эксель ячейка строка столбец и диапазон ячеек рассматривается как один обьект Range иногда для обозначения ячейки используется cells для ссылки используется два формата. формат а1-обычный. ссылка состояит из имени столбца и номера строки, например д4

    ссылка может быть относительной и абсолютной, она может указывать диапазон ячеек, полный адрес диапазона может включать имя раб. листа

    R1 и C1 в данном формате R задает номер строки C номер столбца, ссылка является абсотной. для указания относительной ссылки, задается смещение по отношению к активной ячейке, смещение указывается в квадратных скобках, знак указывает направление смещения.

    Ссылка на одиночную ячейку имеет вид [ обьект.] Range

    например workSheets(лист1) . Range(» A7″)=34

    Cells используется для доступа к отдельной ячейке, в качестве аргументов указыв. номер строки и столбца

    например, для ввода числа 34 неоходима команда sheets(1). cells(7,1). Value=34

    номер строки и столбца могут задаваться с помощью переменных

    для этого напишем процедуру с неявным обьявлением переменных где j- номер строки i-номер столбца.

    Операторы, выражения и операции

    различают простые операторы , записываемые в одну строку и сложные. самые простые операторы это операторы присваемые, используются для присвоения переменной нужного значения

    операторы условия IF используются если нужно выполнить какие то действия взависимости от условия, синтаксическая конструкция этого оператора может иметь две формы:

    1.безальтернативную-IF условие THEN

    2 альтернативную -IF условие ELSE

    Если условие принимает значение истина, то выполняется команды оператор 1

    если условие принимает значение лож, то выполняются команды оператор2

    Вопрос №20 VBA. Условный оператор. Примеры.

    Вопрос №21. VBA. Циклы. Примеры.

    Операторы циклов.
    цикл со счетчиком
    For Счётчик цикла=НачальноеЗначение

    To
    КонечноеЗначение [Step Шаг]

    Операторы
    [Exit For]
    Next [счетчик цикла]

    Цикл-это группа операторов, которые прогрмамма многократно выполняет

    В вба существует два основных типов цикла:
    -циклы со счетчиком
    -циклы с условием

    Step(шаг)-число, задающее шаг цикла,т.е. значение на которое увеличивается или уменьшается значение счетчика на каждом шаге. это число может быть отрицательным(в этом случае шаг будет уменьшаться), если слово step отсутствует, то значение шага равно 1.
    Exit For-оператор досрочного выхода из цикла необязательный
    Next-окончание цикла

    Пример 1. Просуммировать четные числа натурального ряда до50 включительно, сумму плместить в ячейку рабочего листа excel

    Sub sum()
    Dim f As Integer, sum As Integer sum=0
    For f=2 To 50 Step 2
    sum=sum+f
    Next
    Range(«A1»).Value=sum
    End sub

    Главной особенностью циклов с условием является условие, которое может принимать значение истины или лжи.
    В вба есть 2 основных типа циклов с условием:
    -Do While. Loop (цикл с предусловием)
    -Do Until..Loop (цикл с постусловием)

    Цикл с предусловием
    Do While/Until выражение
    Операторы
    [Exit do]
    Loop
    Цикл с постусловием
    Вo
    операторы
    [Exit Do]
    Loop While/Until выражение

    В первом случае условие задается в операторе начала цикла, во втором — в операторе конца цикла

    Do, Loop— ключевые слова, обозначающие начало и конец цикла
    While, Until-ключевые слова определяющие тип цикла

    Цикл Do While выполняется до тех пор, пока условие имеет значение истинf
    Цикл Do Until выполняется до тех пор, пока условие имеет значение ложь

    Exit do-принудительный выход из цикла

    Пример 2. Написать программу, суммирующую на рабочем листе Excel. Выпуск продукции значения ежедневных прибылей из столбца D и помещающую результат в отдельную ячейку с поясняющей надписью, как показано на рисунке.

    Ссылка на основную публикацию
    Adblock
    detector