Помогите пожалуйста решить такую задачу. У меня есть файл - spisok, в нем записаны макросы. Если открыть другую книгу ecxel, то макросы с книги spisok работают и для дргугих книг excel. Как можно сделать так, чтобы мои макросы работали только для книги spisok.
Добрый день!
Помогите пожалуйста решить такую задачу. У меня есть файл - spisok, в нем записаны макросы. Если открыть другую книгу ecxel, то макросы с книги spisok работают и для дргугих книг excel. Как можно сделать так, чтобы мои макросы работали только для книги spisok.A_3485
Sub CellEnterFinish(keycode As String) On Error Resume Next Dim shift As Boolean
shift = Left(keycode, 1) = "s" ' для поддержки заглавных букв в таких полях, как email, skype и т.п. If shift Then keycode = Mid(keycode, 2) strkey = CaseRanges(ChangeLang(Chr(keycode))) If shift Then strkey = UCase(strkey) If ThisWorkbook.Name <> ActiveWorkbook.Name Then Exit Sub
[/vba] но при этом в новой книге работать все равно нельзя, т.к ячейка становиться не активной для написания.
Чтобы отключить вторую книгу досточтно вставить
[vba]
Code
Sub CellEnterFinish(keycode As String) On Error Resume Next Dim shift As Boolean
shift = Left(keycode, 1) = "s" ' для поддержки заглавных букв в таких полях, как email, skype и т.п. If shift Then keycode = Mid(keycode, 2) strkey = CaseRanges(ChangeLang(Chr(keycode))) If shift Then strkey = UCase(strkey) If ThisWorkbook.Name <> ActiveWorkbook.Name Then Exit Sub
[/vba] но при этом в новой книге работать все равно нельзя, т.к ячейка становиться не активной для написания.A_3485
Сообщение отредактировал A_3485 - Пятница, 28.09.2012, 15:45
Private Sub Workbook_Open() Hook End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Unhook End Sub
Private Sub Workbook_Activate() Hook End Sub Private Sub Workbook_Deactivate() Unhook End Sub
'------------------------------------------------------ Sub Hook() On Error Resume Next HookKeys HOOKED_KEYS, "CellEnterFinish" Application.OnKey "{BACKSPACE}", "RemovePrev" Application.OnKey "{ENTER}", "GoToNextField" Application.OnKey "~", "GoToNextField" Application.OnKey "{TAB}" End Sub
Sub Unhook() UnHookKeys HOOKED_KEYS Application.OnKey "{BACKSPACE}" Application.OnKey "{ENTER}" Application.OnKey "~" End Sub
[/vba]
модуль "ЭтаКнига": [vba]
Code
Private Sub Workbook_Open() Hook End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Unhook End Sub
Private Sub Workbook_Activate() Hook End Sub Private Sub Workbook_Deactivate() Unhook End Sub
'------------------------------------------------------ Sub Hook() On Error Resume Next HookKeys HOOKED_KEYS, "CellEnterFinish" Application.OnKey "{BACKSPACE}", "RemovePrev" Application.OnKey "{ENTER}", "GoToNextField" Application.OnKey "~", "GoToNextField" Application.OnKey "{TAB}" End Sub
Sub Unhook() UnHookKeys HOOKED_KEYS Application.OnKey "{BACKSPACE}" Application.OnKey "{ENTER}" Application.OnKey "~" End Sub