Автор: 1122111
Дата сообщения: 14.11.2013 19:44
есть такой макрос
Код:
Private Declare Function ActivateKeyboardLayout _
Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long
Const kb_lay_ru As Long = 68748313, kb_lay_en As Long = 67699721
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Count > 1 Then Exit Sub
' запрет на ввод русских букв в столбцы 2 и 5
If Target.Column = 2 Or Target.Column = 5 Then
If Target Like "*[А-Яа-яЁё]*" Then
' если есть хоть одна русская буква
MsgBox "Ввод русских букв недопустим!", vbCritical
Target.Value = "" ' очистка ячейки
End If
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Target.Column ' в зависимости от номера столбца активной ячеки
Case 1, 3, 6 ' для столбцов 1, 3, 6
ВключитьРусскуюРаскладку
Case 2, 5 ' для столбцов 2, 5
ВключитьАнглийскуюРаскладку
Case Else: ' ничего не делаем (оставляем текущую раскладку)
End Select
End Sub
Sub ВключитьРусскуюРаскладку()
' Переключить на русский язык
x = ActivateKeyboardLayout&(kb_lay_ru, 0)
End Sub
Sub ВключитьАнглийскуюРаскладку()
' Переключить на английский язык
x = ActivateKeyboardLayout&(kb_lay_en, 0)
End Sub
не работает в экселе 2010 64бит что делать?[code][/code]