Страницы: 1 2 След.
RSS
Выделение всех ячеек левее от активной
 
Здравствуйте уважаемые форумчане!
Заранее прошу прощения. Смотрела в приемах о координатном выделении, и в поиске о подсветке цветом, но мне немного не подходит.:cry:
Нужно выделить все ячейки в активной строке которые находятся левее от активной ячейки.
Пробовала так:
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, ActiveCell.Column)).Select
End Sub
Но получаю только выделение первой ячейки в активной строке.
Уважаемые эксперты, подскажите пожалуйста как можно справиться с такой ( вроде бы простой) задачей?
Спасибо всем за помощь!
 
Добрый день
Нужно отключить события:
Код
Application.EnableEvents = False
'...........
Application.EnableEvents = True
 
Отлаживать не пытались?
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
    Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, ActiveCell.Column)).Select
    Application.EnableEvents = True
End Sub

 
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
    Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, ActiveCell.Column - 1)).Select
    Application.EnableEvents = True
End Sub



 
Но получите ошибку, если выделите ячейку в столбце А
 
ну чтобы без ошибки
Код
Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, Application.Max(1, ActiveCell.Column - 1)).Select
F1 творит чудеса
 
У меня ошибок нет.
 
Alexander88, Hugo, Юрий М, Максим Зеленский! Спасибо всем за быстрые ответы!:D
Диапазон выделяется. Но теперь активной ячейкой в выделенном диапазоне стает не та которую выделила я, а та которая стоит в первом столбце строки. Как быть? Помогите!! :cry:  
Изменено: Milana524 - 27.03.2015 12:24:51
 
Не выделяйте, закрашивайте.
 
Цитата
Hugo написал: У меня ошибок нет.
А ты не выполнил условие:
Цитата
Milana524 написал: выделить все ячейки в активной строке которые находятся левее от активной ячейки
:-)
 
Юра, я не писал и не менял исходный код, я только дополнил - так что претензии не принимаются :)
 
Отмазка засчитана)
 
Цитата
Milana524 написал:
Но теперь активной ячейкой в выделенном диапазоне стает не та которую выделила я, а та которая стоит в первом столбце строки.
И что?
 
Цитата
И что?
Теперь же все данные будут вноситься только в первый столбик?! А если нужно в третий или пятый:qstn:
 
А если у Вас будет активной прежняя ячейка, и данные нужно вносить в третий, пятый, то как? ))
Вы бы объяснили сверхзадачу с этим ВЫДЕЛЕНИЕМ - для чего оно вообще?
 
Цитата
Вы бы объяснили сверхзадачу с этим ВЫДЕЛЕНИЕМ - для чего оно вообще?
ой! Простите пожалуйста! Наверное Вы правы. А то как то получается, что не могу сделать то - не знаю что. :oops:
  Есть обычная табличная база данных. Но так как столбцов довольно много, то  частенько данные попадают не в то место. А исправлять потом довольно не приятная работа. Вот и хочется как то облегчить участь таким образом.
  Координатное выделение вроде бы и подходит под эту задачу, но столбец который при этом тоже выделяется слишком режет глаз. Ведь бывает, что ширина столбца довольно большая, да и обьедененные ячейки мешают.  ((

Цитата
А если у Вас будет активной прежняя ячейка, и данные нужно вносить в третий, пятый, то как? ))
Ну я же их могу выделить и все тут... Вроде бы ?!?
 
 
Так уберите в коде координатного выделения одну координату.
 
Milana524, всё-таки
Цитата
Юрий М написал:
Вы бы объяснили сверхзадачу с этим ВЫДЕЛЕНИЕМ - для чего оно вообще?
для наглядности? Чтобы не промазать при заполнении?
F1 творит чудеса
 
Максим Зеленский! Да. Именно для этого. ( только не подумайте, что я нервно кричу ).  :D
 
Цитата
Milana524 написал:
Ну я же их могу выделить и все тут
Выделили. Какая разница, где активная ячейка? Вы же выделили диапазон? Или это будет просто индикация активной строки?
 
Юрий М! Да. Мне именно и нужно видеть в какую именно строку я вношу данные.  
 
Тогда см. ответ Hugo (#17)
 
:(:(:(
Ну что же. Так, значит так. Спасибо всем за советы, помощь и отзывчивость.
Особое спасибо, тому кто этот форум придумал. Очень много полезного здесь нашла.
Всем удачи!
 
Если проблема реализовать #17 - показывайте файл с кодом, а то их много разных было...
 
На скорую руку (
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With UsedRange
        .Cells.Interior.ColorIndex = xlNone
    End With
    Range(Cells(Target.Row, 1), Cells(Target.Row, Target.Column)).Interior.ColorIndex = 35
End Sub




 
Hugo! Спасибо Вам за предложение. Реализовать #17 не есть проблемой. Просто у меня стоит защита листа (с запретом изменения формата ячеек). Но как таковое, не считаю, что дописать немного условие установок защиты является тяжелым процессом. Пол часика потрачу и будет счастье. Думала, может за счет выделения ячеек можно...
Все же всем СПАСИБО!
Изменено: Milana524 - 27.03.2015 14:05:13
 
Цитата
Milana524 написал: ... не есть проблемой...
Рад за вас. Однако, не надо терять осторожность. Есть некоторые подводные камни. Порой при различных вариантах КВ (координатного выделения) можно ненароком грохнуть все выделенное крестом... ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Был один интересный файл, где менялась не заливка, а цвет обрамления - так меньше портится существующий вид листа, а может и почти вообще не портится, точно не помню.
 
Z! Спасибо Вам, что обратили внимание на эту не значительную тему, и за Ваш совет. В этом случае удаление не получится. Так как есть блокированные ячейки в диапазоне. Будет выскакивать предупреждение.  
 
Так а мой вариант не подходит?
Страницы: 1 2 След.
Наверх