軟體:Excel VBA 未在「另存為」對話方塊中填入預設檔名

軟體:Excel VBA 未在「另存為」對話方塊中填入預設檔名

我的主 Excel 工作簿中的某些 VBA 程式碼有問題。我有兩段程式碼。代碼 A 工作正常。代碼 B 無法正常運作。

第一段程式碼(程式碼 A)運作正常,它會建立一個目錄並將 Excel 工作簿儲存在其中,目錄和檔案的名稱都是從儲存格 B4 中提取的。

第二段程式碼(代碼 B)進入一個目錄並開啟一個另存為對話框,並且應該使用儲存格 B4 中的資訊填入初始檔案名稱框。但是,除了初始檔案名稱不自動填充之外,一切正常。它曾經;在我更改映射驅動器的所有巨集引用之前它正在工作(我將它們從映射字母驅動器更改為 UNC 路徑,以便該文件可以在網路上使用,即 Z:\In Progress\ 到 \10.0.0.4 \資料\進行中)。

奇怪的是,從映射驅動器 -> UNC 路徑更改後,我在訪問網路時沒有遇到任何問題。看來只是這個小故障。

我已經編譯了專案並調試了它。

如果有人知道如何填充代碼 B 的初始檔名,我們將不勝感激。

代碼A

    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

代碼B

    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 路徑替換為電腦的實際名稱。所以我改變了

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

問題就解決了。我以為 10.0.0.4 是伺服器電腦的名稱,但實際上它只是一個路徑。從 UNC 路徑更改為實際電腦的名稱也解決了另一個問題,即巨集收到執行時間錯誤 (1004),因為我同事的 UNC 路徑實際上是 10.0.0.3。

相關內容