将活动工作表保存到新工作簿的问题

时间:2013-12-19 07:46:16

标签: vba excel-vba excel

我正在尝试使用以下VBA在Excel中保存活动工作表:

 Application.CutCopyMode = False
 FName = "C:\Users\Public\Documents\DTMForGIS\DTMtoGIS" & Format(Now, "yyyy-mm-dd hh_mm_ss") & ".xls"
 ActiveWorkbook.SaveAs Filename:=FName, _
                          FileFormat:=xlOpenXMLWorkbookMacroEnabled
 Activeworkbook.close

但我在这里有两个问题:
1-当我想打开文件时遇到以下消息: enter image description here

按“是”可以手动打开文件,但是我将使用GIS软件中的Excel文件,由于对格式的误解而导致问题。如你所见,它有.xls格式

2- Activeworkbook.close无效,因为我必须在自己运行代码后关闭应用程序!

第一部分对我来说非常重要,要理解为什么会这样?能告诉我原因吗?

1 个答案:

答案 0 :(得分:1)

您使用的文件格式错误。

对于.xls,它是xlExcel8xlOpenXMLWorkbookMacroEnabled适用于.xlsm

使用此

FName = "C:\Users\Public\Documents\DTMForGIS\DTMtoGIS" & _
        Format(Now, "yyyy-mm-dd hh_mm_ss") & ".xls"

ActiveWorkbook.SaveAs Filename:=FName, _
                      FileFormat:=xlExcel8

或使用此

FName = "C:\Users\Public\Documents\DTMForGIS\DTMtoGIS" & _
        Format(Now, "yyyy-mm-dd hh_mm_ss") & ".xlsm"

ActiveWorkbook.SaveAs Filename:=FName, _
                      FileFormat:=xlOpenXMLWorkbookMacroEnabled

关于你的第二个问题。将您的代码更改为此

Application.DisplayAlerts = False

FName = "C:\Users\Public\Documents\DTMForGIS\DTMtoGIS" & _
Format(Now, "yyyy-mm-dd hh_mm_ss") & ".xls"

ActiveWorkbook.SaveAs Filename:=FName, FileFormat:=xlExcel8

With ActiveSheet.UsedRange
    .Copy
    .PasteSpecial xlValues
    .PasteSpecial xlFormats
End With

Application.Quit