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



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



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



=CELL("width", A2)


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



=CELL("width", THIS_CELL)
2916   11  

11 ответов:

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

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

    =!A1

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

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

  7. клик OK закрыть Name Manager

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

=CELL("width",THIS_CELL)

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

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

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

=CELL("width", INDIRECT(ADDRESS(ROW(), COLUMN())))

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

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

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

  =CELL("width", RC)

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

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

Ура
: -)

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

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

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

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

=ADDRESS(ROW(),COLUMN())
=ADDRESS(ROW(),COLUMN(),1)
=ADDRESS(ROW(),COLUMN(),2)
=ADDRESS(ROW(),COLUMN(),3)
=ADDRESS(ROW(),COLUMN(),4)

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

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

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

Dim MyString as String
MyString = Application.ThisCell.Address
Range(MyString).Select

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

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

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

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

=и(A1=True, C1>0)

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

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

Cell("width") возвращает ширину текущей ячейки, так что вам не нужна ссылка на текущую ячейку. Если вам это нужно, хотя,cell("address") возвращает адрес текущей ячейки, так что если вам нужна ссылка на текущую ячейку, используйте indirect(cell("address")). Смотрите документацию:http://www.techonthenet.com/excel/formulas/cell.php

Comments

    Ничего не найдено.