我一直使用FolderBrowserDialog.SelectedPath方法得到一个不一致的路径格式,更具体地说,返回的路径似乎随机丢失或者有反斜杠,这对我的代码行造成了问题
xlWorkSheet.SaveAs(Filename:=dialog.SelectedPath & "Excel_Export_" & dt.ToString("ddMMMyyyy") & ".xlsm", FileFormat:=52)
任何帮助都会非常感谢。
答案 0 :(得分:2)
Path.Combine()
将帮助您构建有效的完全限定文件名。而不是试图将所有东西都挤成一个衬里:
Dim xFil As String = "Excel_Export_" & dt.ToString("ddMMMyyyy") & ".xlsm"
xFil = Path.Combine(dlg.SelectedPath, xFil)
xlWorkSheet.SaveAs(Filename:= xFil, FileFormat:= 52)
如果文件进入带有日期的文件夹(乍一看你的代码看起来像),日期字符串将是文件夹args之一:
Dim xFil As String = "Sales_" & dt.ToString("MMyyyy") & ".xlsm"
xFil = Path.Combine(dlg.SelectedPath, dt.ToString("ddMMMyyyy"), xFil)
xlWorkSheet.SaveAs(Filename:= xFil, FileFormat:= 52)
重点是,Path.Combine()
不会错过目录分隔符或添加额外的分隔符。
答案 1 :(得分:0)
我认为你错过了路径和文件名之间的反斜杠: -
xlWorkSheet.SaveAs(Filename:=dialog.SelectedPath & "Excel_Export_" & dt.ToString("ddMMMyyyy") & ".xlsm", FileFormat:=52)
应该是: -
xlWorkSheet.SaveAs(Filename:=dialog.SelectedPath & "\" & "Excel_Export_" & dt.ToString("ddMMMyyyy") & ".xlsm", FileFormat:=52)
我的代码应该是: -
xlWorkSheet.SaveAs(dialog.SelectedPath + "Excel_Export_" + dt.ToString("ddMMMyyyy") + ".xlsm", FileFormat:=52)