Страницы: 1
RSS
отображение ВЫДЕЛЕННОЙ ячейки в другой ячейке
 
Есть ли такая функция, которая отображает значение ВЫДЕЛЕННОЙ ДРУГОЙ ячейки?

Например, в ячейке A1 - "тест", а в А2 - "тест2",
Задача заключается в том, чтобы в B1 появилось значение "тест", когда выделена ячейка А1;
или "тест2", когда выделена ячейка А2.
спасибо!)
 
Нет, только макросом, но очень простым :)
Правый клик по ярлычку листа - Исходный текст, вставьте
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[B1] = ActiveCell
End Sub
 
Гениально! Огромное спасибо  :)
Изменено: slam111 - 02.04.2013 17:43:24
 
Возник следующий вопрос - как сделать, чтобы при наведении курсора на пустую ячейку b1 в ячейке c1 появлялось значение a1 "тест"?
 
Это будет довольно сложный макрос. ЗАЧЕМ Вам это?
 
Расположите в ячейке В1 элемент управления "Надпись". Очистите свойство Caption, чтобы элемент управления был "невидим". В модуль листа вставьте
Код
Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Const W! = 3
If X > W And X < Label1.Width - W And Y > W And Y < Label1.Height - W Then
    [C1] = [A1]
Else
    [C1].ClearContents
End If
End Sub
Константа W задает ширину полосы по периметру Надписи, при попадании курсора в которую С1 очищается. Чем больше W, тем меньше ошибок при большей скорости перемещения мыши, но уменьшается область, в которой появляется значение.
 
попытался решить с наскока и обломался )
выкладываю безуспешную попытку... (см.файл)
как сделано: будучи в A1 установлено имя "вв" с параметрами =Лист1!A1
создана надпись, убран цвет границ, надписи присвоена связь с именем вида =вв
ожидалось, что будет отображаться текст из активной ячейки.. но не тут то было... не работает так.. почему - не знаю )
для контраста показано, что для имени "аа" все работает )
 
В этой теме, в моём последнем сообщении есть макрос от ZVI, который отслеживает координаты ячейки. Зная адрес ячейки - легко узнать значение в ней и "сделать определённые выводы".
 
Макрос от ZVI красивый, но грузит процессор на 100%, хотя и можно параллельно работать в Excel и других программах.
Если добавить вызов WaitMessage перед DoEvents, "аппетиты" программы к процессорному времени входят в норму:
 
Спасибо!
 
Цитата
Юрий М пишет: Это будет довольно сложный макрос. ЗАЧЕМ Вам это?
Для решения задачи из этой темы.
 
А зачем усложнять - "при наведении курсора"? Можно ведь просто отслеживать ВЫДЕЛЕНИЕ (активацию) ячейки. Разница есть?
И зачем повторно прикрепили файл?
 
Да, все верно, нужно при выделении ячейки! Неточно выразился :(
 
Цитата
Казанский написал:
Правый клик по ярлычку листа - Исходный текст, вставьтеКод ? 123Private Sub Worksheet_SelectionChange(ByVal Target As Range)[B1] = ActiveCellEnd Sub
Спасибо за макрос.  Помогите с реализацией такой задачи -  при выделении   строки  нужно вывести часть данных строки в  определенные ячейки .
К примеру из  строчки "макита" " ушм" "5030"  "350" "сутки" "2800"      Надо вывести в ячейку В1 "5030", В2 "350" В3 "макита"
 
Алексей Цуканов,  Ваш вопрос не по теме. Создайте отдельную.
 
vikttur, сегодня деть "воскрешения" тем)
Не бойтесь совершенства. Вам его не достичь.
 
Видимо, звезды так сошлись сегодня. Сплошные некроманты :)
Так хоть бы в тему писали, а то увидят пару подходящих слов - о, мое...
 
Здравствуйте. Помогите, пожалуйста, мне изменить этот макрос таким образом, чтобы он выводил значение текущей ячейки только в том случае, если она находится в определенном диапазоне, например B4:B10, а как только текущая ячейка выходит из этого диапазона, то никаких действий не совершал.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[B1] = ActiveCell
End Sub

Изменено: Pine3 - 27.05.2025 20:46:18
 
Код
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub

    If Not Intersect(Target, Range("B4:B10")) Is Nothing Then
        [B1] = ActiveCell
    End If

End Sub
 
MikeVol, спасибо за помощь!
Я только подправил немного, потому что в неизменном виде не работало. Работает вот в таком виде:
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 
    If Not Intersect(Target, Range("B4:B10")) Is Nothing Then
        [B1] = ActiveCell
    End If
 
End Sub
Не можете ли еще мне подсказать какую купить книгу или источник в интернет, где можно прочесть о написании макросов с самого начального уровня?
 
Pine3, рекомендую обратить внимание на статьи ПРИЁМов https://www.planetaexcel.ru/techniques/3/ - там на конкретных примерах достаточно доходчиво разбираются возможности MS Excel, в том числе и VBA.
 
IKor, спасибо за рекомендацию.
Страницы: 1
Читают тему
Наверх