Иммитация 'Ctrl + Z'
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'здесь проверять значение на допустимость и при необходимости отменять ввод
End Sub
Если речь идёт об MS Excel, то может имеет смысл воспользоваться событием рабочего листа или книги, например :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'здесь проверять значение на допустимость и при необходимости отменять ввод
End Sub
Спасибо за ответ, но я же не спрашивал как отследить изменение ячейки!.. Я спрашивал как сыммитировать нажатие клавиш, "отменять ввод"!!
P.S. Если не хотите получать в дальнейшем альтернативные варианты решения Вашей задачи, то просто формулируйте задачу, без дальнейших об'яснений.
Спасибо за ответ, но я же не спрашивал как отследить изменение ячейки!.. Я спрашивал как сыммитировать нажатие клавиш, "отменять ввод"!!
тебе и ответили :)
чтоб провести отмену, нужно отловить изменение в ячейке- правильно или нет.
а команда:
SendKeys ("^Z")
Спасибо за ответ, но я же не спрашивал как отследить изменение ячейки!.. Я спрашивал как сыммитировать нажатие клавиш, "отменять ввод"!!
Чтож, добавим еще... "отменять ввод" и Ctrl-Z - это не одно и тоже, может быть раскладка другая - уже встречался с таким на других компьютерах, наконец просто сам пользователь(макрос) может заблокировать(заменить на свои) любые ст. комбинации клавиш Excel - через Application.OnKey (+Application.EnableCancelKey)
И кстати, в Excel'е есть уже готовый метод для отмены...
Чтож, добавим еще... "отменять ввод" и Ctrl-Z - это не одно и тоже, может быть раскладка другая - уже встречался с таким на других компьютерах, наконец просто сам пользователь(макрос) может заблокировать(заменить на свои) любые ст. комбинации клавиш Excel - через Application.OnKey (+Application.EnableCancelKey)
И кстати, в Excel'е есть уже готовый метод для отмены...
гм.гм. можно и так: комбинация Alt+BackSpace
SendKeys ("%{BS}") -раскладка не должна помешать
Ребята, ну не хочет человек слышать ничего кроме SendKeys, не навязывайте ничего больше, а то он Вас всех "покусает" за советы.
pashulka да никого я не кусал, да и задачу вроде бы сформулировал правильно "Подскажите как сыммитировать нажатие клавиш 'Ctrl + Z'". А слушать я хочу всё;) В жизни пригодится!! Всем спасибо!..
По первых Вы набросились на старика, то бишь меня. И вдобавок покалечили. А иначе откуда у меня следы волчьих зубов ???
Что касается имитации нажатия клавиш, то все, начиная с меня уже высказали своё единодушное мнение.
Инструкция SendKeys
[COLOR=blue]Dim oPr As Object[/COLOR]
[COLOR=blue]Set oPr = Intersect(Target, Range("C5:E10"))[/COLOR]
[COLOR=blue]If Not oPr Is Nothing Then[/COLOR]
[COLOR=blue]If Target.Value > 1 Then[/COLOR] [COLOR=blue]SendKeys "^Z"[/COLOR]
[COLOR=blue]Exit Sub[/COLOR]
[COLOR=blue]End IF[/COLOR]
[COLOR=blue]....[/COLOR]
[COLOR=blue]....[/COLOR]
[COLOR=blue]End If[/COLOR]
[COLOR=blue]End Sub[/COLOR]
P.S:Ничего из вышеперечисленного также не срабатывает!
Совсем забыл, вот собственно говоря готовый код :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'***********************************************
' help urllink-doggie-yandex.ru
'***********************************************
On Error Resume Next
If Target.Value > 1 Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End Sub
Ну и кто в конечном варианте оказался прав ... Не надо было "кривляться", а сразу послушаться старика и Вы бы получили готовый код. Не Вы первый наступаете на эти грабли, связанные с подобным макросом.
:) :) :) :) :) :) Спасибо!!! Снимаю шляпу перед стариком!;)