如何使用vba在excel2010中将保存types从excel工作簿更改为excel 97-2003?

由于activewoorkbook.close true我的macros打开saveFileDialog,但它select其保存types默认为“Excel工作簿”。 我需要改变为“Excel 97-2003工作簿”。即使我已经改变了我的默认格式在Excel保存选项。 但只有当我手动保存文件时才有效。 任何人都可以build议我一些线?

Sub OpenAllWorkbooksnew()设置destWB = ActiveWorkbook Dim DestCell As Range

  Dim cwb As Workbook For Each cwb In Workbooks **Call donemovementReport** ActiveWorkbook.Close True ActiveWorkbook.Close False Next cwb End Sub 

您可以调用SaveAs方法(使用DisplayAlerts = False)而不是Close。 首先更改目标目录,并在SaveAs中指定文件格式。 这对你有帮助吗?

 Dim targetDirectory As String targetDirectory = "c:\temp\VBA\test\" ChDir targetDirectory Application.DisplayAlerts = False Workbooks(ActiveWorkbook.Name).SaveAs ActiveWorkbook.Name, xlExcel8 Application.DisplayAlerts = True ActiveWorkbook.Close False 

那么我不知道我是否明白。 您可以首先显示文件对话框,在其中获取文件名及其path,然后调用save-as方法。

 Sub test2() Dim targetDirectory As String targetDirectory = "c:\temp\VBA\test\" ChDir targetDirectory Dim excelFileName As Variant excelFileName = Application.GetSaveAsFilename(FileFilter:="Excel Files,*.xls,All Files,*.*", Title:="Save As File Name") If excelFileName = False Then Exit Sub If LCase$(Right$(excelFileName, 4)) <> ".xls" Then excelFileName = excelFileName & ".xls" End If Application.DisplayAlerts = False ActiveWorkbook.SaveAs fileName:=excelFileName, FileFormat:=xlExcel8 Application.DisplayAlerts = True ActiveWorkbook.Close False End Sub 

或者这样你可以显示另存为对话框:

 Application.Dialogs(xlDialogSaveAs).Show "c:\temp\VBA\test\test.xls"