AutoHotkey , безусловно, способ пойти сюда.
Пока вы нажимаете Shift-вправо, почему бы просто не открыть только для чтения?
редактировать: как упоминалось ниже, это не работает (?!?).
Вернемся к моему первоначальному предложению. Autohotkey может записывать ваши действия с помощью модуля ScriptWriter, который затем можно настроить.
Вы, вероятно, в конечном итоге с чем-то вроде:
IfWinActive, ahk_class XLMAIN
^B:: ; hotkey is CTRL + B but can be changed to anything
ExcelFileName := "C:\path\to\file.xlsx" ; this needs to be replaced with a variable
Send, {LWINDOWN}r{LWINUP} ;opens Run
WinWaitActive, Run,
Send, excel{SPACE}/r{SPACE}ExcelFileName{Enter}
Если вы расскажете мне больше о том, как хранятся ваши файлы (какие-либо соглашения об именах? и т.д.) Я могу помочь вам найти путь к горячей клавише. Без этого все, что я могу придумать, это неприятный VBA -> AHK kludge из файла Excel, который вы хотите, например,
Sub GetPath()
Dim CompletePath As String
CompletePath = ActiveWorkbook.FullName
MsgBox CompletePath
End Sub
который вы могли бы затем сбросить в сценарий AHK как ExcelFileName
.
редактировать 2: я думаю, с выделенным нужным файлом Excel Send {Ctrl Down}c{Ctrl Up}
скопирует путь к файлу в буфер обмена, который затем можно передать как ExcelFileName := %clipboard%
.
Попробуй это. Выделите свой файл и нажмите CTRL + B.
^B:: ; hotkey is CTRL + B but can be changed to anything
Send {Ctrl Down}c{Ctrl Up} ; copies path to Clipboard (unverified)
ExcelFileName := %clipboard% ; plaintext
Send, {LWINDOWN}r{LWINUP} ; opens Run
WinWaitActive, Run,
Send, excel{SPACE}/r{SPACE}ExcelFileName{Enter}