Страницы: 1
RSS
Макрос вставки информации в блокнот работает только на английской раскладке
 
Добрый день! Подскажите пожалуйста, в книге Эксель есть макрос, копирующий информацию с листа и вставляющий ее в блокнот:
Код
Range(Worksheets("Выгрузка").Cells(1, 1), Worksheets("Выгрузка").Cells(n2, 1)).Copy
Dim MyNotepad
MyNotepad = Shell("notepad.exe", vbNormalFocus)
AppActivate Title:="Блокнот"
SendKeys "^V", False
Данный код нормально работает если раскладка на клавиатуре английская, но если поставить русскую, то в блокнот выгружается только буква V, подозреваю, что проблема в операторе SendKeys, но как ее можно исправить?
 
Решил проблему принудительной сменой раскладки из кода:
Код
Public Declare Function ActivateKeyboardLayout& Lib "user32" (ByVal HKL As Long, _
ByVal flags As Long)

Sub процедура()
ActivateKeyboardLayout 67699721, 2 'Английский
Range(Worksheets("Выгрузка").Cells(1, 1), Worksheets("Выгрузка").Cells(n2, 1)).Copy
Dim MyNotepad
MyNotepad = Shell("notepad.exe", vbNormalFocus)
AppActivate Title:="Блокнот"
SendKeys "^V", False
End Sub
 
DopplerEffect, а почему бы не выгружать содержимое диапазона в текстовый файл и после открывать его блокнотом?

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, это как? В Word сначала выгрузить, а потом с помощью блокнота открыть? Там вроде иероглифы могут быть.  
 
DopplerEffect, при чём тут ворд? Поиск рулит!

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, понял, для данной задачи это сложнее, надо сохранять пересохранять отдельный файл в Txt, много действий получится. С SendKeys проще для меня, открыл блокнот скопировал туда данные, а дальше работаешь с блокнотом, хочешь сохраняешь не хочешь нет. В принципе с изменением раскладки получилось, но спасибо за отклик.

 
Изменено: DopplerEffect - 27.12.2018 15:18:43
 
Есть и иные сочетания (не зависящие от раскладки):
Код
SendKeys "+{INSERT}", True
Изменено: sokol92 - 27.12.2018 15:54:49
Владимир
Страницы: 1
Наверх