Я пытаюсь открыть файл 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 &" стоит прямо сейчас) ... если это имеет смысл! :)

1
David Ch 24 Апр 2017 в 11:32

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

Должно сработать.

Для получения дополнительной информации см. Переменные среды Википедии.

1
Pᴇʜ 24 Апр 2017 в 09:39

s = Application.UserName должен сделать свое дело.

s = Environ("USERPROFILE") может быть даже лучше.

0
Angelin Calu 24 Апр 2017 в 09:07
43583268