Option Explicit Public sValue As String, z As Long Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim y, xx As Long, a, b As String y = Target.Column If y > 64 Then Exit Sub a = Cells(2, z).Value b = Cells(2, y).Value If y <> z Then xx = MsgBox("Переместить " & a & " в " & b, vbYesNo) If xx = 6 Then: Exit Sub If xx = 7 Then: Application.SendKeys ("^z") End If End Sub Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) z = Target.Column End Sub
[/vba] Задача сделать так, чтобы при перемещении ячейки в другую колонну, выводилось сообщение с запросом, если нажать да, то макрос закрывается, если нажать нет, нужно сделать отмену действия, т.е. вернуть ячейку на прежнее место. Примерно что то похожее написал. Но когда срабатывает команда Application.SendKeys ("^z"), макрос заново срабатывает на изменение. Пытался с помощью команды Application.EnableEvents = False включить и выключить , но не получается. Помогите, пожалуйста, решить задачу
Здравствуйте [vba]
Код
Option Explicit Public sValue As String, z As Long Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim y, xx As Long, a, b As String y = Target.Column If y > 64 Then Exit Sub a = Cells(2, z).Value b = Cells(2, y).Value If y <> z Then xx = MsgBox("Переместить " & a & " в " & b, vbYesNo) If xx = 6 Then: Exit Sub If xx = 7 Then: Application.SendKeys ("^z") End If End Sub Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) z = Target.Column End Sub
[/vba] Задача сделать так, чтобы при перемещении ячейки в другую колонну, выводилось сообщение с запросом, если нажать да, то макрос закрывается, если нажать нет, нужно сделать отмену действия, т.е. вернуть ячейку на прежнее место. Примерно что то похожее написал. Но когда срабатывает команда Application.SendKeys ("^z"), макрос заново срабатывает на изменение. Пытался с помощью команды Application.EnableEvents = False включить и выключить , но не получается. Помогите, пожалуйста, решить задачуTavlar