对象需要错误。 将ActiveSheet保存到新的工作簿

此macros的目的是select下拉数据validation列表中的每个项目,更新工作表,然后将工作表保存为新的工作簿。 ws.SaveAs后面的代码块出现“Object required”错误。 任何人都可以看到这个问题,因为我不能:/

Sub Create_excel_sheets() Dim strValidationRange As String Dim rngValidation As Range Dim rngDepartment As Range Dim ws As Worksheet strValidationRange = Range("AD5").Validation.Formula1 Set rngValidation = Range(strValidationRange) For Each rngDepartment In rngValidation.Cells Range("AD5").Value = rngDepartment.Value ActiveSheet.Calculate Set ws = ActiveSheet ws.SaveAs _ FileFormat:=52, _ Filename:="C:\Test\" & rngDepartment.Value.xlsx, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False Next End Sub 

看来您正在使用Worksheet.SaveAs方法内的Worksheet.ExportAsFixedFormat方法的参数。

此外, filename:=string连接与& rngDepartment.Value.xlsx有点& rngDepartment.Value.xlsx 。 最好简单地放弃文件扩展名并允许FileFormat:=参数提供正确的文件扩展名。 在这种情况下,您select的XlFileFormat枚举 (例如52 )适用于xlOpenXMLWorkbookMacroEnabled,但您似乎试图在末尾追加.xlsx

  ws.SaveAs FileFormat:=xlOpenXMLWorkbookMacroEnabled, _ Filename:="C:\Test\" & rngDepartment.Value '<~~no extension 

我不确定您是否尝试使用.SaveAs或.ExportAsFixedFormat。 我select了一个简单的.SaveAs作为示范