使用IP地址保存在网络中时,宏保存为文件名不起作用

问题描述 投票:0回答:2

我以前在excel中为我的VBA脚本保存为行,文件保存到网络文件夹。之前,服务器有名称,现在我们使用IP(192.168.20.212)访问服务器文件夹,因此我使用IP更改了代码中的地址。

现在,问题是我设置的文件命名不起作用。出现对话框时,文件名为空,用户需要手动输入文件名。但是,如果我输入服务器名称或使用本地地址,则文件命名工作正常。我别无选择,只能使用IP来保存文件。

以下是文件命名行;

    filenme = "PENDING CLAIMS_" + szNextDatereformat

以下是保存文件的行;

Dim sFileSaveName As String
        sFileSaveName = Application.GetSaveAsFilename _
                                     (InitialFileName:="\\SERVERNAME\excel_files\" & filenme & sTargetFile, _
                                      FileFilter:="Excel Files (*.xlsx), *.xlsx")

        If sFileSaveName <> "False" Then
             '-- Savethe file --
             Application.DisplayAlerts = False
             ActiveWorkbook.SaveAs FileName:=sFileSaveName, _
                                   FileFormat:=51
            Application.DisplayAlerts = True
        Else
             '-- Popup message --
             MsgBox "Template not saved!", vbExclamation, "Warning"
        End If

新的应该是;

Dim sFileSaveName As String
        sFileSaveName = Application.GetSaveAsFilename _
                                     (InitialFileName:="\\192.168.20.212\excel_files\" & filenme & sTargetFile, _
                                      FileFilter:="Excel Files (*.xlsx), *.xlsx")

        If sFileSaveName <> "False" Then
             '-- Savethe file --
             Application.DisplayAlerts = False
             ActiveWorkbook.SaveAs FileName:=sFileSaveName, _
                                   FileFormat:=51
            Application.DisplayAlerts = True
        Else
             '-- Popup message --
             MsgBox "Template not saved!", vbExclamation, "Warning"
        End If
excel vba network-programming
2个回答
0
投票

这样的事情对我有用:

Dim txtFileName As String
Dim finalPath As String

finalPath = "\\10.10.10.11\PUBLIC\SOMETHING\"
finalPath = finalPath & "myWorkbookName.xlsx"

txtFileName = Application.GetSaveAsFilename(finalPath, "Excel (*.xlsx), *.xlsx", , "Excel network save")
        If txtFileName = "False" Then
            MsgBox ("We could not save Excel.")
            Exit Sub
        End If

根据我的观察,问题在于: - 计算机无法访问网络共享, - 提议的工作簿名称与保存的“规则”不匹配,例如: G。太长或有相同的奇怪字符。

你应该尝试:

1)检查计算机是否可以访问此网络驱动器

2)检查IP地址是否正确

3)检查文件名是否正确。


0
投票

感谢Mikisz稍微修改了他的代码,下面的内容与我合作;

Dim txtFileName As String
Dim finalPath As String

finalPath = "\\192.168.20.212\networkfolder\"
finalPath = finalPath & filenme & ".xlsx"

txtFileName = Application.GetSaveAsFilename(finalPath, "Excel (*.xlsx), *.xlsx", , "Template saved on the Network")

        If txtFileName <> "False" Then
         '-- Savethe file --
         Application.DisplayAlerts = False
         ActiveWorkbook.SaveAs FileName:=txtFileName, _
                               FileFormat:=51
        Application.DisplayAlerts = True
    Else
         '-- Popup message --
         MsgBox "Canceled saving the template!", vbExclamation, "Warning"
         'Exit Sub
    End If
© www.soinside.com 2019 - 2024. All rights reserved.