Страницы: 1
RSS
VBA. Перемещение курсора.
 
Здравствуйте! Подскажите пожалуйста, как можно программно отследить - было ли перемещение курсора (в идеале не переместили ли его за заданный столбец и строку). Имею ввиду под перемещением - выделение ячейки.
 
событие selection_change
 
Пробую по событию selection_change() менять булеву переменную, а потом проверять ее значение... при этом реакция идет даже если курсор остается на месте..    
Может быть есть какое-то свойство Application или книги, или еще чего-то, чтобы проверять именно его?
 
если событие selection_change наступило, то курсор(выделение) поменялось... так как это следствие и причина, соответственно..  
 
осталось выяснить попадает ли новое выделение(представленное параметром target) в определенный диапазон - if intersect(target,range(..))  
 
или выложите ваш пример..
 
Public b As Boolean  
 
Sub auto_close()  
 
If b = False Then  
 
Application.ScreenUpdating = False  
   
ActiveSheet.Unprotect  
Columns("A:S").EntireColumn.Hidden = False  
Rows("1:36").EntireRow.Hidden = False  
ActiveSheet.Protect  
Application.ScreenUpdating = True  
   
End If  
   
End Sub  
 
Sub auto_open()  
 b = True  
   
     
 Application.DisplayFullScreen = True  
 Range("B8").Select  
     
   
End Sub  
 
Sub selection_change()  
   
 b = False  
   
   
End Sub  
 
Мне нужно, чтоб документ открывался всегда в "нормальном виде", даже если юзер укатил курсор куда-то в "зону недосяжности".. но! чтоб если перемещений не было - не выскакивал вопрос "сохранить изменения?" потому что без всяких проверок на перемещение, после макроса "на закрытие" этот вопрос выскакивает...
 
вообще то любая переменная теряет свое значение после закрытия программы...остается нормализовывать документ при каждом открытии, без проверки, много то времени это не занимает
 
{quote}{login=Артем}{date=27.06.2008 11:44}{thema=}{post}вообще то любая переменная теряет свое значение после закрытия программы...остается нормализовывать документ при каждом открытии, без проверки, много то времени это не занимает{/post}{/quote}  
 
Речь не идет о сохранении значения переменной после закрытия. А об отслеживании изменений во время работы с документом.
 
{quote}{login=Tanya}{date=27.06.2008 11:54}{thema=Re: }{post}{quote}{login=Артем}{date=27.06.2008 11:44}{thema=}{post}вообще то любая переменная теряет свое значение после закрытия программы...остается нормализовывать документ при каждом открытии, без проверки, много то времени это не занимает{/post}{/quote}  
 
Речь не идет о сохранении значения переменной после закрытия. А об отслеживании изменений во время работы с документом.{/post}{/quote}  
 
прошу прощения, был не внимателен  
ну всеж таки проще (мне так кажется) перед закрытием через if...then проверить скрыты ли нужные строки и столбцы, чем контролировать все движения пользвателя
 
ну вот..  
:)  
выяснилось, что вам нужно совсем не то, о чем вы спрашивали вначале..  
 
а именно:  
 
чтобы не выскакивал запрос нужно или его подавить  
 
application.displayallerts=false  
 
или указать, что изменений якобы не было  
 
workbook.saved=true  
 
а с курсором - артем прав, при открытии поставить его куда надо, и все дела  
 
а на событие selection_change реагирует специальная процедура, и записывается она в коде листа или книги..  
 
есть там окошечки для выбора объекта и процедуры обработки события. сверху..
 
Вариант скрытия запроса от глаз юзера не совсем подходит.. а вот просто устанавливать курсор по открытию.. оказалось достаточно :)    
спасибо за внимание и помощь :)
Страницы: 1
Читают тему
Наверх