2013-12-19 49 views
0

我尝试使用下面的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文件我有以下消息encountring: enter image description here

手动打开文件是按是确定的,但我要使用GIS软件中的Excel文件,该文件造成,因为格式的误解的问题。正如你可以看到它具有.xls格式

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

第一部分对我很重要,要理解为什么会发生这种情况?你能告诉我为什么吗?

回答

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 
+0

谢谢悉达思,但我的第二个问题呢?为什么Activeworkbook.close ia没有关闭原始工作簿? – Behseini

+0

从手机发布。请给我一点时间。我的网络已关闭 –

+0

我没有看到该线路的任何问题。该工作簿应该关闭。你面临什么确切的问题? –

相关问题