最近我在excel VBA中遇到了workbook.SaveAs
方法的问题。
我所拥有的代码是:wb.SaveAs Replace(path & pred & Left(itm.Filename, Len(itm.Filename) - cnt) & "csv", " ", "_"), xlCSV
,其中Replace
函数评估为:"C:\Users\name.surname\Downloads\attTools\attExtractor\ETLBoxUpload\Somefile111_file.csv"
(长度与实际文件中的长度完全相同)。当方法SaveAs被执行时,我得到了" Method 'SaveAs' of object'_Workbook' failed
"错误。我通过将文件移动到其他目录(较短路径)来解决问题:"C:\Users\name.surname\Desktop\attExtractor\ETLBoxUpload\somefile111_file.csv"
。我没有在代码或任何地方进行任何其他类型的更改。 所以,这就是我的问题:是否有可能传递给SaveAs方法的字符串/路径的长度有限?如果是这样,那么最大长度是多少?(我试图谷歌但没有成功)
答案 0 :(得分:0)
从一些非常小的东西开始易:
Option Explicit
Public Sub TestMe()
Dim wb As Workbook
Set wb = ThisWorkbook
wb.SaveAs wb.Path & "_new", xlCSV
End Sub
关于这个问题:
是否有可能传递给SaveAs方法的字符串/路径的长度有限?如果是这样,最大长度是多少?
不,字符串不受长度限制。但是,正如@ACatInLove的评论中所提到的 - “由于兼容性原因,Windows限制了260个字符的路径。”