我有VBA,以及许多其他东西,将Excel工作簿保存到SharePoint(我认为是企业2010),并且它在大多数情况下工作正常,但每当用户运行VBA时, Excel通过弹出显示"获取可用内容类型和属性的列表来冻结..."。如果用户选择取消,则会出现另一个弹出窗口"运行时错误' 1004':方法' SaveAs'对象' _Workbook'失败。如果用户选择' Debug' VBA的最后一行突出显示为创建错误。
Dim fileName As String
Dim excelDirName As String
fileName = [c9]
excelDirName = [c16] & "/"
ThisWorkbook.SaveAs excelDirName & fileName & ".xls"
因为这有时会起作用(并且在没有这种情况下工作超过6个月)而不是其他时间我不确定它可能是什么,我想在SharePoint中更新了一些内容。
答案 0 :(得分:1)
我会用不同的方式写它,以使它更健壮:
With SomeSpecificSheet
Dim path As String
path = .Range("SavePath").Value
Dim fileName As String
fileName = .Range("SaveFileName").Value
End With
Debug.Assert Trim(path) <> vbNullString
Debug.Assert Trim(fileName) <> vbNullString
Dim savePath As String
savePath = path & "/" & fileName
ThisWorkbook.SaveAs savePath
注意:
ThisWorkbook
中的每个工作表都包含$C$9
和{{}中的预期值1}},那是在惹麻烦。$C$16
确定文件的扩展名。使用SaveAs
验证假设(并在冻结之前中断)。或者,您可以显式验证值,例如:
Debug.Assert