Сохраните файл, используя динамический путь - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть код для сохранения файла.Здесь путь статический.

Sub savefile()

Dim strpath As String
Dim fry As String
Dim mth As String
Dim yr As String

yr = Year(Now)
mth = MonthName(Month(Now))
fry = Application.WorksheetFunction.Weekday(Date, 11)

Filename = "D:\Users\Desktop\ docs\" & yr & " " & "Week Of" & " " & mth & " " & fry & ".jpg"

ThisWorkbook.SaveCopyAs (Filename)

End Sub

Как заменить этот статический или жесткий код динамическим путем?

Ответы [ 3 ]

0 голосов
/ 23 ноября 2018

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

пример:

Sub savefile()

Dim strpath As String
Dim fry As String
Dim mth As String
Dim yr As String
Dim path As String

yr = Year(Now)
mth = MonthName(Month(Now))
fry = Application.WorksheetFunction.Weekday(Date, 11)    

Filename = yr & " " & "Week Of" & " " & mth & " " & fry & ".jpg"
Path = Application.DefaultFilePath & yr & " " & "Week Of" & " " & mth & " " & fry & ".jpg"

Application.Dialogs(xlDialogSaveAs).Show (Filename)
ThisWorkbook.SaveCopyAs (Path)


End Sub

Если вы хотите, чтобы ваш пользователь вводил путь напрямую, вы можете использовать application.dialogs(xlDialogSaveAs).Show (Filename)

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

ПРИМЕЧАНИЕ: место сохранения по умолчанию можно изменить, и именно в нем Excel будет сохранять файлы по умолчанию.

0 голосов
/ 09 января 2019

Если вы используете один и тот же сетевой диск, путь должен быть указан как Путь UNC , например: (\\?\C:\my_dir).

Чтобы найти путь UNC , используйте cmd.exe (командная строка) и напишите net use.

0 голосов
/ 23 ноября 2018

Попробуйте ниже к югу

Sub SaveFileAs()
Dim strpath As String
Dim fry As String
Dim mth As String
Dim yr As String

    yr = Year(Now)
    mth = MonthName(Month(Now))
    fry = Application.WorksheetFunction.Weekday(Date, 11)

    Filename = yr & " " & "Week Of" & " " & mth & " " & fry

Application.Dialogs(xlDialogSaveAs).Show (Filename)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...