Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Координатное выделение, Макрос. Активная ячейка выделяет строку.
 
Добрый день.
Люди добрые, помогите пожалуйста.
Мне нужно, чтобы выделялась строка, определенной длины (А-N), только та, где сейчас находится активная ячейка. Взял макрос тутова, но что-то не работает.

------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'координатное выделение
On Error Resume Next 'по ошибке перейти к выполнения следующей строки
Application.ScreenUpdating = False 'чтобы не моргало
Dim x As Range: Set x = [A5:N300]: x.Interior.ColorIndex = xlNone
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, x) Is Nothing Then
Intersect(x, Target.EntireRow).Interior.ColorIndex = 35
Target.Interior.ColorIndex = xlNone
End If
End Sub
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
http://planetaexcel.ru/techniques/3/58/
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(),
который возвращает нужные тебе данные из любого объекта, даже если их там нет...
 
Загляните в приемы, там есть несколько вариантов
http://www.planetaexcel.ru/techniques/3/58/
Vladimir Zakharov
Microsoft MVP – Excel
 
Нет, не выделяется макросом. С условным форматированием глюки получаются на рабочем файле.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Цитата
Dim Coord_Selection As Boolean   'глобальная переменная для вкл/выкл выделения

Sub Selection_On()   'макрос включения выделения
   Coord_Selection = True
End Sub

Sub Selection_Off()  'макрос выключения выделения
   Coord_Selection = False
End Sub

'основная процедура, выполняющая выделение
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   Dim WorkRange As Range

   If Target.Cells.Count > 1 Then Exit Sub  'если выделено больше 1 ячейки - выходим
   If Coord_Selection = False Then Exit Sub    'если выделение выключено - выходим

   Application.ScreenUpdating = False
   Set WorkRange = Range("A6:N300")    'адрес рабочего диапазона, в пределах которого видно выделение
   Intersect(WorkRange, Uni on(Target.EntireColumn, Target.EntireRow)).Sel ect   'формируем крестообразный диапазон и выделяем
   Target.Activate
End Sub

Вроде заработал. Что нужно поправить, чтобы только строка выделялась?
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Можно еще восользоватся такой надстройкой.
Взято со старого форума.
Изменено: sva - 22 Янв 2013 12:33:55
 
Цитата
Владимир пишет:
Что нужно поправить, чтобы только строка выделялась?

вместо этого:
Код
Intersect(WorkRange, Uni on(Target.EntireColumn, Target.EntireRow)).Sel ect

вот это:
Код
Intersect(WorkRange, Uni on(Target, Target.EntireRow)).Sel ect
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(),
который возвращает нужные тебе данные из любого объекта, даже если их там нет...
 
Спасибо, ребята. Всё равно на рабочем файле не работает. Там одни формулы, УФ и есть ещё макрос, который сортирует по цвету. Может что-то из этого мешает..
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
У меня макросы не пашут т.к. ругается что надо переделать их под x64. Что делать?
 
Dulit, какое отношение вопрос имеет к данной теме? По факту ответ Вам уже дала система - переделывайте макросы под 64.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist, с удовольствием бы переделал, но увы не шарю...
 
Не шарите создать тему с Вашим вопросом? В этой теме Ваш вопрос - оффтоп.
Я сам - дурнее всякого примера! ...
Страницы: 1
Читают тему (гостей: 1)