我以前在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
这样的事情对我有用:
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)检查文件名是否正确。
感谢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