Программное обеспечение: Excel VBA не заполняет имя файла по умолчанию в диалоговом окне «Сохранить как»

Программное обеспечение: Excel VBA не заполняет имя файла по умолчанию в диалоговом окне «Сохранить как»

У меня проблема с некоторым кодом VBA в моей основной книге Excel. У меня есть два фрагмента кода. Код A работает нормально. Код B работает некорректно.

Первый фрагмент кода (код A), который работает отлично, создает каталог и сохраняет в нем книгу Excel, при этом имя каталога и файла извлекаются из ячейки B4.

Вторая часть кода (код B) переходит в каталог и открывает диалоговое окно сохранения как, и должна заполнить поле начального имени файла информацией из ячейки B4. Однако все работает, за исключением того, что начальное имя файла не заполняется автоматически. Раньше работало; это работало как раз до того, как я изменил все ссылки макросов для сопоставленных дисков (я изменил их с сопоставленных буквенных дисков на путь UNC, чтобы файл можно было использовать в сети, т. е. Z:\In Progress\ на \10.0.0.4\data\In Progress).

Странно, что у меня нет никаких проблем с доступом к сети после переключения с сопоставленного диска на пути UNC. Похоже, это просто небольшой глюк.

Я скомпилировал проект и отладил его.

Если у кого-то есть идеи, как заполнить начальное имя файла для Code B, мы будем очень признательны.

КОД А

    Option Explicit
Sub SaveAsNewJobtoIP()
'This macro creates a New Folder in the In Progress File, named off the BILLING CLIENT Name.
Dim Path As String
Dim InitialName As String
Dim sFileSaveName As Variant

    Path = "\\10.0.0.4\data\In Progress\"

        If Len(Dir("\\10.0.0.4\data\In Progress\" & ActiveSheet.Range("B4").Value, vbDirectory)) = 0 Then
        MkDir Path & ActiveSheet.Range("B4").Value
        End If

'This macro saves the workbook with a Dialog and an Initial Filename
    InitialName = ActiveSheet.Range("B4").Value & " " & ActiveSheet.Range("H2") & " " & ActiveSheet.Range("I2") & " " & ActiveSheet.Range("J2")
    sFileSaveName = Application.GetSaveAsFilename(InitialFileName:=Path & InitialName, FileFilter:="Excel Files (*.xlsm), *.xlsm")

    If sFileSaveName <> False Then
    ActiveWorkbook.SaveAs sFileSaveName
    End If
End Sub

КОД Б

    Option Explicit
Sub SaveAsNewQuoteinJCF()
'This macro saves the workbook with a Dialog and an Initial Filename
Dim Path As String
Dim InitialName As String
Dim sFileSaveName As Variant

    Path = "\\10.0.0.4\data\Job Cost Folder\Jill\"
    InitialName = "Estimate " & ActiveSheet.Range("B4").Value
    sFileSaveName = Application.GetSaveAsFilename(InitialFileName:=Path & InitialName, FileFilter:="Excel Files (*.xlsm), *.xlsm")

    If sFileSaveName <> False Then
    ActiveWorkbook.SaveAs sFileSaveName
    End If
End Sub

решение1

Мне пришлось провести небольшое исследование и попытаться разобраться в ландшафте моей локальной сети, но с помощью комментариев я понял, что все, что мне нужно сделать, чтобы решить проблему, это:

Замените UNC Pathway на фактическое имя компьютера. Поэтому я изменил

"\\10.0.0.4\" ---> "\\Server-pc\"

и проблема была решена. Я думал, что 10.0.0.4 — это имя сервера, но на самом деле это был просто путь. Изменение пути UNC на фактическое имя компьютера также решило другую проблему, когда макросы получали ошибки времени выполнения (1004), потому что путь UNC моего коллеги на самом деле был 10.0.0.3.

Связанный контент