Я пытаюсь открыть файл Word из Excel, используя VBA. Прямо сейчас у меня есть этот код:
Sub OpenWordFile_Odrebekræftelse()
Set wordapp = CreateObject("word.Application")
Dim s As String
On Error Resume Next
s = Application.InputBox(Prompt:="Indtaste brugernavn (initialer)", Type:=2)
wordapp.documents.Open "C:\Users\" & s & "\Standarddokumenter\C02 Aftale\C02.5 Kontrakt\Ordrebekræftelse_version 1.1.dotx", ReadOnly:=True
wordapp.Visible = True
Это позволяет мне открывать файл Word, вводя инициалы пользователя при нажатии кнопки. Путь к файлу зависит от того, кто пользователь, и в этом моя проблема ...
Этот метод работает хорошо, но я хотел бы избавиться от части «введите ваши инициалы» и иметь макрос, который получает имя пользователя непосредственно в путь к файлу в зависимости от того, кто использует сеанс ... если вы понимаете, что я имею в виду.
Кто-нибудь может мне помочь с этим? Я посмотрел на вещи Getusername, но не смог заставить его работать должным образом ...
Спасибо!
Редактировать: я не хочу отображать имя пользователя в ячейке, я хочу "вставить" его в файл пути в коде vba (где "& s &" стоит прямо сейчас) ... если это имеет смысл! :)
2 ответа
Вы должны использовать переменную среды %USERPROFILE%
, которая приводит к %SystemDrive%\Users\{username}
В твоем случае
wordapp.documents.Open "%USERPROFILE%\Standarddokumenter\C02 Aftale\C02.5 Kontrakt\Ordrebekræftelse_version 1.1.dotx", ReadOnly:=True
Или
wordapp.documents.Open Environ("USERPROFILE") & "\Standarddokumenter\C02 Aftale\C02.5 Kontrakt\Ordrebekræftelse_version 1.1.dotx", ReadOnly:=True
Должно сработать.
Для получения дополнительной информации см. Переменные среды Википедии.
s = Application.UserName
должен сделать свое дело.
s = Environ("USERPROFILE")
может быть даже лучше.
Новые вопросы
excel-vba
Этот тег ожидает удаления. Вместо этого используйте теги [excel] и [vba]. (Подробнее: https://meta.stackoverflow.com/q/370095) Excel-VBA (Visual Basic для приложений для Microsoft Excel) является доминирующим языком программирования для Microsoft Office Excel. Это управляемый событиями и объектно-ориентированный язык программирования для написания макросов для приложений Microsoft Office, таких как Excel. НЕ ИСПОЛЬЗУЙТЕ ЭТУ ТАГ для вопросов VB.NET.