以特定的文件格式将多个工作表保存在新的工作簿中

我试图在论坛上阅读一些相关的post,但是没有能够使代码工作或者理解一些函数的语法。

我将尽力描述我想要以清晰的方式完成的事情:

  • 我有一个工作簿与多个工作表(Sheet1,Sheet2 …工作表5),我想要创build一个macros分配button保存为一个新的工作簿只包含工作表1,工作表2和工作表3

  • 文件格式应该是Microsoft Excel 97-2003工作表(.xls)

  • 点击macros指定button时,popup另存为对话框,允许用户select目的地,也可以select新的文件名(预先指定的文件名可以是“textstring123”

  • 保存工作簿后,工作簿应打开,供用户在旧工作簿最小化时进行检查

我正在使用Excel 2013,以防万一。

这个post看起来很粗鲁,但我别无select,只能向你寻求帮助,因为在过去一天半的时间里,我一直在为此而头痛,如果没有这个,我的macros观项目的其余部分将变成浪费。 预先感谢您的build议/build议/帮助。

如果需要其他细节或澄清,请不要问。

我已经添加了我的代码行,但似乎没有正常工作。

Sub Macro6() ' ' Macro6 Macro ' Save as '' Dim varResult As Variant Sheets(Array("sheet1", "sheet2", "sheet3")).Copy varResult = Application.GetSaveAsFilename(FileFilter:= _ "Excel Files *.xls", FileFormat:=-57, Title:="Save File", _ InitialFileName:=ActiveWorkbook.Path \ Textstring123.xls) If varResult <> False Then ActiveWorkbook.SaveAs Filename:=varResult, _ FileFormat:=xlWorkbookNormal Exit Sub End If End Sub 

黄色突出显示调试器给出运行时错误的行

这将做的伎俩,我有一个filter的问题,所以我加了一点error handling!

 Option Explicit Sub Macro6() ' ' Macro6 Macro ' Save as '' Dim tB As Excel.Workbook Dim wB As Excel.Workbook Dim ExportArray As Variant Dim ShName As Variant Dim ExportName As String Dim varResult As Variant Set tB = ThisWorkbook ExportArray = Array("sheet1", "sheet2", "sheet3") For Each ShName In ExportArray Debug.Print ShName tB.Sheets(ShName).Copy Set wB = ActiveWorkbook On Error Resume Next ExportName = Application.GetSaveAsFilename(tB.Path & "\Textstring123", "Excel Files *.xls", , "Save " & ShName) If Err.Number > 0 Then ExportName = Application.GetSaveAsFilename(tB.Path & "\Textstring123", , , "Save " & ShName) Else 'No error, everything went well with filters End If On Error GoTo 0 'String 8 and Boolean 11 If VarType(ExportName) <> 8 Then Exit Sub Else wB.SaveAs Filename:=ExportName, FileFormat:=xlWorkbookNormal End If DoEvents wB.Close Next ShName End Sub