2

Я работаю над документом Excel, чтобы сделать структуру папок (проекта) управляемой, используя HYPERLINK для важных файлов и папок (Word/Excel и т.д.).

Поскольку мы также используем TFS, я хочу добавить возможность проверки и регистрации прямо из листа Excel. Универсальная посадочная и обзорная страница.

Если бы я просто

=HYPERLINK("C:\work\TF.exe";"simple test")

Я получаю предупреждение безопасности, но программа выполняется.

В конце концов, я хочу что-то вроде

=HYPERLINK("C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\TF.exe status $/MyProject/Documents /recursive";"Find local Check Outs in Document folder")

Однако это не работает для пробелов в пути к файлу, а также для аргументов командной строки. Есть ли способ сделать этот запуск без использования VB? Даже если я обертываю части гиперссылки кавычками (используя двойные двойные кавычки для Excel: "" -> "), ничего не улучшается, я получаю ошибку" файл не найден ".

И ... только только если мне нужно использовать VB (мне не нравится предупреждение о безопасности), что будет лучшим способом сделать это?

2 ответа2

8

Альтернативой является создание ярлыка с соответствующими ключами командной строки, встроенными в него. Затем вы можете гиперссылку на ярлык. Обратите внимание, что ярлык имеет расширение .lnk.

Если вы хотите сделать что-то более сложное, чем запуск одного исполняемого файла с переключателями, вы можете создать ссылку на пакетный скрипт (.bat).

2

Насколько я знаю, использовать HYPERLINK невозможно, кроме как с хорошим трюком Энтони.

Однако пробелы в гиперссылке не имеют значения, если путь указан в кавычках.

Чтобы решить эту проблему, вам, возможно, придется использовать VBA, если параметры командной строки должны быть динамическими или если вы не хотите использовать anthonys Approch по другим причинам.

Это был бы аккуратный быстрый способ:

Shell "C:\Program Files (x86)\Notepad++\notepad++.exe -notabbar", vbMaximizedFocus

или использовать ваш код:

public sub demo()
  Shell "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\TF.exe status $/MyProject/Documents /recursive"
end sub

Кстати, при выполнении файлов по гиперссылкам обычно есть и должно быть предупреждение. Так что, если вы не хотите использовать HYPERLINK из-за «не люблю предупреждений», вы их тоже получите;)

С другой стороны, решение VBA может избежать предупреждений: если вы подпишите рабочую книгу доверенной подписью или используете ее в папке, которая настроена как доверенная для макросов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .