VBA将Excel保存到Sharepoint永远冻结屏幕显示“获取可用内容types和属性的列表…”

我有VBA,以及许多其他的东西,保存一个Excel工作簿到SharePoint(企业2010年,我认为),它大多数时间工作正常,但每当一个用户运行VBA时,Excel冻结popup窗口显示“获取可用内容types和属性的列表…”。 如果用户select取消,则popup另一个popup窗口“运行时错误1004”:对象'_Workbook'的方法'SaveAs'失败。如果用户select'debugging',VBA的最后一行突出显示为创build错误。

Dim fileName As String Dim excelDirName As String fileName = [c9] excelDirName = [c16] & "/" ThisWorkbook.SaveAs excelDirName & fileName & ".xls" 

由于这个工程有时(和它的工作超过6个月没有这种情况发生),而不是其他时间,我不知道它可能是什么,我想在SharePoint中更新。

我会写一点不同,以使其更强大:

 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$C$16的预期值, ThisWorkbook要求麻烦了。
  • 使用命名范围 ,以便如果用户在列C之前或行9之前插入一列,您的代码仍然引用正确的单元格。
  • SaveAs确定文件的扩展名。
  • 使用Debug.Assert来validation假设(并在冻结之前中断)。 或者,您可以明确validation这些值,例如:

     If path = vbNullString Or fileName = vbNullString Then MsgBox "I need a path!" Exit Sub End If