Excel как определить координаты активной ячейки

Как определить адрес активной ячейки.

Q: Как в макросе узнать и использовать текущее положение курсора (не мышиного, естественно)?

A:Очень просто! :-) ActiveCell.Row и ActiveCell.Column — покажут координаты активной ячейки.

[ Назад ]
[ Оглавление ]
[ Далее ]

Оставить комментарий

Комментарий:

можно использовать BB-коды

Максимальная длина комментария — 4000 символов.

 

Комментарии

1.

Мне нравитсяМне не нравится

17 апреля 2013, 22:49:22

Спасибо, освежило память))

2.

64K

28 сентября 2010 года

Vladlen70

0 / / 28.09.2010

Мне нравитсяМне не нравится

28 сентября 2010, 16:25:13

А не проще ли использовать — ActiveCell.Address или Activecell.AddressLocal?

Используя Microsoft Excel, вы можете легко получить местоположение выбранной в данный момент ячейки в поле имени, которое отображается слева от панели формул. Но если ячейка названа, вы не можете проверить ее местоположение на основе отображения в поле имени. И если вы хотите напрямую показать полный адрес активной ячейки или отобразить адрес активной ячейки в указанной ячейке, что бы вы сделали? В этом руководстве мы покажем вам, как легко получить адрес активной ячейки с помощью формул и методов VBA.

Получить адрес активной ячейки с формулой
Получить адрес активной ячейки с кодом VBA
Отображение адреса активной ячейки в указанной ячейке с кодом VBA
Динамически отображать адрес активной ячейки с помощью удивительного инструмента


Получить адрес активной ячейки с формулой

В этом разделе мы предоставим вам формулу легкого получения адреса активной ячейки.

1. Выберите ячейку, чтобы сделать ее активной.

2. Введите в нее приведенную ниже формулу и нажмите Enter .

=ADDRESS(ROW(),COLUMN())

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

Внимание: Если вы выберете другую ячейку, адрес не изменится автоматически. Чтобы получить динамический адрес при выборе разных ячеек, примените следующие методы.


Получить адрес активной ячейки с кодом VBA

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

1. нажмите другой + F11 одновременно открыть Microsoft Visual Basic для приложений окно.

2. в Microsoft Visual Basic для приложений дважды щелкните имя текущего рабочего листа на левой панели, чтобы открыть редактор кода, затем скопируйте и вставьте приведенный ниже код VBA в редактор кода.

Код VBA: получить адрес активной ячейки

Sub selectRange()
	MsgBox ActiveCell.Address
End Sub

3. Затем нажмите Run кнопку для запуска кода.

4. Затем появится диалоговое окно с адресом активной ячейки, указанным внутри.


Отображение адреса активной ячейки в указанной ячейке с кодом VBA

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

1. Откройте Microsoft Visual Basic для приложений окно, нажав другой + F11 одновременно.

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

Код VBA: отображать адрес активной ячейки в указанной ячейке

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
	Range("A1").Value = ActiveCell.Address
End Sub

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

3. Затем нажмите Файл > Закройте и вернитесь в Microsoft Excel Для выхода из Microsoft Visual Basic для приложений окно.

Вы можете видеть, что адрес активной ячейки отображается в ячейке A1, и адрес будет изменяться автоматически в зависимости от изменения активной ячейки. Смотрите скриншот:


Динамически отображать адрес активной ячейки с помощью удивительного инструмента

Если вы хотите динамически отображать адрес активной ячейки на листе, я настоятельно рекомендую Расширенная панель редактирования инструмент Kutools for Excel. Давайте посмотрим, как этот инструмент может динамически отображать адрес активной ячейки на листе.

1. Нажмите Кутулс > Показать спрятать > Расширенная панель редактирования для включения функции.

С этого момента каждый раз, когда вы щелкаете ячейку, появляется окно расширенной панели редактирования. И адрес активной ячейки будет отображаться в нижней части окна.
Tips: Вы можете просматривать и редактировать содержимое ячейки прямо в окне.

  Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.



Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Определение активных составляющих книги

Мне кажется, многие загонялись таким вопросом, как определить активную ячейку (на которой находится курсор), строку или столбец. Или же хотелось получить адрес в формате А1, В4 и т.д. Вот сегодня я и покажу, как это сделать, потому, что очень удобно, когда ты знаешь активные элементы книги.

Номер активной строки

Практически все активные элементы определяются при помощи такого слова — Active, кторое записывается перед определением активного элемента. Таким образом, номер активной строки можно вычислить следующим образом:

       Sub Stroka()

           s = ActiveCell.Row

           MsgBox «Активная строка под номером » & s, vbInformation, «Активная строка»

       End Sub

Номер активного столбца и стороки

Аналогично определению строки столбец определяется по такому же принципу, только в конце добавляется не строка, а столбец:

       Sub Stroka()

           s = ActiveCell.Row

           b = ActiveCell.Column

           MsgBox «Активная строка под номером » & s & » » & _

vbNewLine & «Активный столбец под номером » & b, vbInformation, «адрес»

       End Sub

Определяем номер последней заполненной строки и столбца

Sub Last_Stroka_and_Stolbec()

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

    Stroka = ActiveSheet.Cells.Find(What:=»*», SearchDirection:=xlPrevious, _

          SearchOrder:=xlByRows).Row

    Stolbec = ActiveSheet.Cells.Find(What:=»*», SearchDirection:=xlPrevious,         _SearchOrder:=xlByRows).Column

MsgBox «Последняя строка под номером » & Stroka & » » & _

           vbNewLine & «Последний столбец под номером » _

           & Stolbec, vbInformation, «Адрес»

End Sub

Определяем активную ячейку

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

      Sub yacheika()

          sk = ActiveCell.Row

          st = ActiveCell.Column

          MsgBox «Активная ячейка имеет координаты Cells(» & sk & «,» & st & «)», _

                  vbInformation, «Активная ячейка»

      End Sub

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

Многие думали, а как получить адрес активной ячейки? Очень просто, делается это так:

      Sub adres()

          A = ActiveCell.Address

          MsgBox «Абсолютный адрес активной ячейки — » & A, vbInformation, «Адрес»

      End Sub

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

      Sub adress()

          A = ActiveCell.Address(0, 0)

          MsgBox «Относительный адрес активной ячейки — » & A, vbInformation, «Адрес»

      End Sub

В скобках оператора Address указано какое именно значение должно быть относительным, а какое абсолютным. Если Address(0,0), то и строка и столбец записаны относительными (первый ноль отвечает за строку, второй ноль — это столбец). Если в строке поставить вместо ноля еденицу, то строка будет абсолютным значением, а столбец относительным. Причём значения следующих записей равнозначны:

Address(1, 0) = Address(True, False)

Адрес выделенного диапазона ячеек

Адрес выделенного диапазона можно получить следующим образом

      Sub diapazon()

‘используйте любую переменную для определения адреса

          A = Selection.Rows.Address(0, 0)    ‘Через строку

          b = Selection.Columns.Address(0, 0) ‘Через столбец

          c = Selection.Address(0, 0)

          MsgBox «Выделенный диапазон — » & A, vbInformation, «Адрес»

      End Sub

Координаты выделенного диапазона

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

      Sub Kdiapazon()

          a = Selection.Row

          b = Selection.Column

          K1 = Cells(a, b).Address(0, 0)

          aa = a + Selection.Rows.Count — 1

          bb = b + Selection.Columns.Count — 1

          K2 = Cells(aa, bb).Address(0, 0)

          MsgBox «Первая координата выделенного диапазона — » & K1 & vbNewLine & _

          «Вторая координата выделенного диапазона — » & K2, vbInformation, «Координаты»

      End Sub

a — Определяет номер первой строки выделенного диапазона;
b — Определяет номер первого столбца выделенного диапазона;
K1 — Определяем первую координату выделенного диапазона;
aa — Определяем номер последней строки выделенного диапазона;
bb — Определяем номер пследнего столбца выделенного диапазона;
K2 — Определяем вторую координату выделенного диапазона;

Selection.Rows.Count — определяет количество строк в выделенном диапазоне;
Selection.Columns.Count — определяет количество столбцов в выделенном диапазоне;

У многих возник вопрос: А почему вычитаем единицу? Всё потому, что первая координата входит в выделенный диапазон и нам её надо не потерять.

Имя активной книги

Имя активной книги возможно вычислить такой записью:

      Sub WorkbookName()

          Name = ActiveWorkbook.Name

          MsgBox «Имя активной книги — » & Name, vbInformation, «Имя активной книги»

      End Sub

Имя активного листа

Имя активного листа можно определить так:

      Sub SheetsName()

          Name = ActiveSheet.Name

          MsgBox «Имя активного листа — » & Name, vbInformation, «Имя активного листа»

      End Sub

Активная ячейка в Excel VBA

Активная ячейка — это текущая выбранная ячейка на листе, активная ячейка в VBA может использоваться как ссылка для перехода к другой ячейке или изменения свойств той же активной ячейки или ссылки на ячейки, предоставленной из активной ячейки, активная ячейка в VBA может можно получить с помощью метода application.property с ключевым словом active cell.

Для эффективной работы с кодированием VBA важно понимать концепцию объекта диапазона и свойств ячеек в VBA. В этих концепциях есть еще одна концепция, которую вам нужно изучить, это «активная ячейка VBA».

В Excel есть миллионы ячеек, и вы наверняка сомневаетесь, какая из них является активной. Для примера посмотрите на изображение ниже.

На самом изображении выше у нас есть много ячеек, чтобы определить, какая из них является активной ячейкой, очень просто, какая бы ячейка не была выбрана прямо сейчас, она называется «Активная ячейка» в VBA.

Если ваша активная ячейка не видна в вашем окне, посмотрите на поле имени, оно покажет вам адрес активной ячейки, на приведенном выше изображении адрес активной ячейки — B3.

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

# 1 — Ссылки в Excel VBA

В наших предыдущих статьях мы видели, как ссылаться на ячейки в VBA. По свойству Active Cell мы можем ссылаться на ячейку.

Например, если мы хотим выбрать ячейку A1 и вставить значение «Hello», мы можем записать его двумя способами. Ниже приведен способ выбора ячейки и вставки значения с помощью объекта VBA «RANGE».

Код:

 Sub ActiveCell_Example1 () Диапазон ("A1"). Выберите диапазон ("A1"). Value = "Hello" End Sub 

Сначала будет выбрана ячейка A1 « Диапазон (« A1 »). Выбрать»

Затем он вставит значение «Hello» в диапазон ячейки A1 («A1»). Value = «Hello»

Теперь я удалю строку Range («A1»). Value = «Hello» и использую свойство Active Cell для вставки значения.

Код:

 Sub ActiveCell_Example1 () Диапазон ("A1"). Выберите ActiveCell.Value = "Hello" End Sub 

Точно так же сначала он выберет ячейку A1 « Диапазон (« A1 »). Выбрать»

Но здесь я использовал ActiveCell.Value = «Hello» вместо Range («A1»). Value = «Hello»

Причина, по которой я использовал свойство Active Cell, потому что в тот момент, когда я выбираю ячейку A1, она становится активной ячейкой. Таким образом, мы можем использовать свойство Excel VBA Active Cell для вставки значения.

# 2 — Активный адрес ячейки, значение, строка и номер столбца

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

На изображении выше активной ячейкой является «B3», а значение — 55. Давайте напишем код на VBA, чтобы получить адрес активной ячейки.

Код:

 Sub ActiveCell_Example2 () MsgBox ActiveCell.Address End Sub 

Запустите этот код с помощью клавиши F5 или вручную, тогда он покажет адрес активной ячейки в окне сообщения.

Выход:

Точно так же код ниже покажет значение активной ячейки.

Код:

 Sub ActiveCell_Example2 () MsgBox ActiveCell.Value End Sub 

Выход:

Код ниже покажет номер строки активной ячейки.

Код:

 Sub ActiveCell_Example2 () MsgBox ActiveCell.Row End Sub 

Выход:

Код ниже покажет номер столбца активной ячейки.

Код:

 Подложка ActiveCell_Example2 () MsgBox ActiveCell.Column End Sub 

Выход:

# 3 — Параметры активной ячейки в Excel VBA

Свойство Active Cell также имеет параметры. После ввода свойства ActiveCell откройте скобку, чтобы увидеть параметры.

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

Например, ActiveCell (1,1) означает, какая ячейка активна. Если вы хотите переместиться на одну строку ниже, вы можете использовать ActiveCell (2,1), здесь 2 не означает, что нужно переместиться на две строки вниз, а не только на одну строку вниз. Аналогично, если вы хотите переместить один столбец вправо, тогда это код ActiveCell (2,2)

Для примера посмотрите на изображение ниже.

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

Код:

ActiveCell.Value = «Hiiii» или ActiveCell (1,1) .Value = «Hiiii»

Запустите этот код вручную или с помощью клавиши F5, это вставит значение «Hiiii» в ячейку.

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

Код:

ActiveCell (2,1) .Value = «Hiiii»

Это вставит значение в ячейку под активной ячейкой.

Если вы хотите вставить значение в один столбец справа, вы можете использовать этот код.

Код:

ActiveCell (1,2) .Value = «Hiiii»

Это вставит «Hiiii» в следующую ячейку столбца активной ячейки.

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

Надеюсь, вам понравилось. Спасибо, что уделили нам время.

Вы можете скачать шаблон VBA Active Cell Excel здесь: — VBA Active Cell Template

 

Добрый день.  

  Может кто нибудь подсказать возможно ли узнать адрес активной ячейки при помощи формулы без VBA , и если это возможно то как?

 

webley

Пользователь

Сообщений: 1991
Регистрация: 01.01.1970

=АДРЕС(СТРОКА();СТОЛБЕЦ())

 
 

{quote}{login=}{date=02.11.2010 02:03}{thema=}{post}______________{/post}{/quote}  

  спасибо , а не могли бы в кратце объяснить как это работает , для именного диапазона «aaa» я нашёл формулу , но что то не понятно как это работает.  
И макроса вроде нет никакого ,хотя предупреждение при открытии выдаёт?

 
 

{quote}{login=webley}{date=02.11.2010 01:57}{thema=}{post}=АДРЕС(СТРОКА();СТОЛБЕЦ()){/post}{/quote}  

  АДРЕС(СТРОКА();СТОЛБЕЦ()) — это конечно хорошо , но как мне допустим сделать так чтобы  в ячейке А1 отображался адрес активной ячейки

 
 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

{quote}{login=}{date=02.11.2010 02:58}{thema=Re: }{post}{quote}{login=webley}{date=02.11.2010 01:57}{thema=}{post}{/post}{/quote} как мне допустим сделать так чтобы  в ячейке А1 отображался адрес активной ячейки{/post}{/quote}  
В модуль листа:  
Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
   [A1] = Target.Address
End Sub

 

{quote}{login=}{date=02.11.2010 03:06}{thema=}{post}=ЯЧЕЙКА(«адрес»){/post}{/quote}  

  извинте меня , может я неправильно выражаюсь , но мне нужна формула что бы в ячеке А1 отображался адрес активной ячейки.  Например если я выбрал С1 , то в А1 отображается С1 , если выбрал Е3 то в А1 отображается Е3 , и т.д.

 

dude

Пользователь

Сообщений: 1066
Регистрация: 22.12.2012

вам ее дали  
именно активную, а не выделенную  
и ссылку на файлообменник дали, где ее смотреть

 

Возникла аналогичная проблема, нашел на форуме эту тему.  

  Загрузил приведенный файл.  
При запуске он просит разрешения включить макросы.  
Если их включить, то в ячейке A1 оказывается постоянное значение, которое не меняется при перемещении по листу.  
Если макросы не включать, выдается сообщение об ошибке.  

  Ссылка на файлообменник не работает, возможно, материал там уже удален.  

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

  Существует ли решение?

 

Вот она слабость формул :)

 

Я так и думал, что без макросов не получится…  

  Сделаю тогда шаг назад и расскажу, зачем мне это нужно.  

  Есть два диапазона на разных листах в одной книге.  
Некоторым ячейкам первого диапазона поставлены в соответствие ячейки второго.  
Соответствие динамическое: наличие во втором дипазоне нужной ячейки и ее адрес определяются в зависимости от значений.  

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

  Можно ли добиться нужного эффекта без макросов?

 

R Dmitry

Пользователь

Сообщений: 3103
Регистрация: 22.12.2012

Excel,MSSQL,Oracle,Qlik

#14

19.11.2010 09:56:40

{quote}{login=Beard}{date=19.11.2010 09:52}{thema=}{post}Я так и думал, что без макросов не получится…  

  Сделаю тогда шаг назад и расскажу, зачем мне это нужно.  

  Есть два диапазона на разных листах в одной книге.  
Некоторым ячейкам первого диапазона поставлены в соответствие ячейки второго.  
Соответствие динамическое: наличие во втором дипазоне нужной ячейки и ее адрес определяются в зависимости от значений.  

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

  Можно ли добиться нужного эффекта без макросов?{/post}{/quote}  
может Вам это надо  

  ого 55551

Прикрепленные файлы

  • post_176015.xls (25 КБ)

Спасибо

 

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

 

R Dmitry

Пользователь

Сообщений: 3103
Регистрация: 22.12.2012

Excel,MSSQL,Oracle,Qlik

#16

19.11.2010 10:34:56

{quote}{login=Beard}{date=19.11.2010 10:18}{thema=}{post}Прошу прощения за возможную бестолковость, но я не понимаю, как предложенный файл связан с моей задачей. Можно пояснить для непонятливых?{/post}{/quote}  
Возможность просмотра другого диапазона, без выбора конечно, но все же смотреть что то можно :)

Спасибо

 

Без выбора не годится.  

  Диапазоны сравнительно большие, на экране не помещаются, поэтому простое размещение на том же листе (хоть во вставке, хоть в обычных ячейках) не помогает: чтобы посмотреть дополнительную информацию, придется делать скролл, а потом искать исходную позицию. Тогда уж проще сходить на соседний лист и посмотреть. Собственно, сейчас оно так и делается, но хочется реализовать более удобный способ.

 

R Dmitry

Пользователь

Сообщений: 3103
Регистрация: 22.12.2012

Excel,MSSQL,Oracle,Qlik

#18

19.11.2010 11:56:21

{quote}{login=Beard}{date=19.11.2010 11:00}{thema=}{post}Без выбора не годится.  

  Диапазоны сравнительно большие, на экране не помещаются, поэтому простое размещение на том же листе (хоть во вставке, хоть в обычных ячейках) не помогает: чтобы посмотреть дополнительную информацию, придется делать скролл, а потом искать исходную позицию. Тогда уж проще сходить на соседний лист и посмотреть. Собственно, сейчас оно так и делается, но хочется реализовать более удобный способ.{/post}{/quote}  
для быстрого перехода из активной ячейки, используйте горячие клавиши ctrl + [
возможно это облегчит Ваши страдания :)  

  *14741*

Спасибо

 

{quote}{login=R Dmitry}{date=19.11.2010 11:56}{thema=Re: }{post}  
для быстрого перехода из активной ячейки, используйте горячие клавиши ctrl + [
возможно это облегчит Ваши страдания :)  
{/post}{/quote}  

  Не облегчит. У меня нет зависимости между ячейками ни в ту, ни в другую сторону.  
Значение активной ячейки (в сочетании с некоторыми другими данными) показывает, где можно посмотреть дополнительную информацию. При этом сами значения обеих ячеек — простые данные, без формул.

 

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

 

А где размещать эти гиперссылки?  

  Связь примерно такая.  
Если в текущей ячейке стоит, например, число 5, то надо посмотреть, что стоит во втором диапазоне в том же столбце и в строке, где в первом столбце тоже 5.

 

Может, Вид — Окно — Разделить?

 

в модуль листа  
Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
Dim r1 As Range, r2 As Range  
Dim ws, adr, n  
ws = «2» ‘имя второго листа  
Set r1 = ActiveSheet.Range(«A1:E11») ‘первый диапазон  
Set r2 = Worksheets(ws).Range(«A1:A11») ‘второй диапазон  
If Target.Cells.Count > 1 Then Exit Sub  
If Not Intersect(Target, r1) Is Nothing Then  
n = r2.Find(Target.Value, r2(r2.Rows.Count, 1), xlValues, xlWhole, xlByRows, xlNext).Row  
adr = Cells(n, Target.Column).Address(False, False, xlA1)  
ActiveSheet.Hyperlinks.Add Anchor:=Target, Address:=»», SubAddress:=»‘» & ws & «‘» & «!» & adr  
Target.Hyperlinks(1).Follow  
End If  
End Sub

 

Спасибо всем, кто пытается помочь.  
Пока ничего не помогло.  

  Разделять окно имело бы какой-то смысл, если бы можно было в каждой половине делать независимый скроллинг.  

  Решения с макросами не годятся по исходной постановке задачи: макросы запрещены.  

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

 

слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

ну не разделить, а расположить..

 

Решения с макросами не годятся по исходной постановке задачи: макросы запрещены.  
Кем?

 

можно использовать выпадающий список (проверка данных без остановки по ошибки)  
в проверке данных можно использовать вычисляемые формулы в том числе например  
=двссыл(«листоченьспрятанный!» & адресс(строка();столбец()))  

  но посмотреть можно будет только значение, а не формулу, и если пользователь всё таки выберет что-то из выпадающего списка — пощады содержимому ячейки не будет!

 

Beard

Гость

#28

19.11.2010 16:07:26

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

  По той же причине не подойдет вариант с расположением окон.  

  А вот выпадающий список может оказаться интересным. Надо попробовать.

Понравилась статья? Поделить с друзьями:
  • Excel как определить имя ячейки
  • Excel как определить заливку ячейки
  • Excel как определить есть ли формула в ячейке
  • Excel как определить диапазон в значениях
  • Excel как определить границы ячейки