xlsm文件能否设置一个功能将文件另存为,同时只删除其中的操作表及宏代码,生成.xls的文件即可

解决方案 »

  1.   

    参考下面的这段代码。
    分别是:如何删除指定工作表、如何指定保存的“格式”。
    Sub Main()
       Application.DisplayAlerts = False   ' 关闭警告提示
       ' 若不关闭,下面两句执行时会弹出对话框让用户确认
       Sheets("Sheet3").Delete             ' 删除指定工作表
       ' 注意下面的“另存为……”操作:
       ' 1.  文件名为abc、没给扩展名,Excel会自动加上正确的扩展名
       ' 2.  在“关闭警告提示”的情况下,目标文件存在时也不提示、直接覆盖
       ThisWorkbook.SaveAs "E:\Temp\TestE", xlExcel12, CreateBackup:=False
       Application.DisplayAlerts = True    ' 恢复警告提示
    End Sub
      

  2.   

    上面代码中,给的“文件名”是TestE,保存结果文件是 TestE.xlsx 。
    象上面代码第9行那样不给出扩展名,那么不能存在“E:\Temp\TestE”这个文件夹,
      如果有这个文件夹,可能会操作出错, 这个时候应该给定扩展名,写成 E:\Temp\TestE.xlsx
      

  3.   

    刚才清理测试文件,发现多了一个文件出来……
    原来“类型”参数写错了,应该是 xlOpenXMLWorkbook 。
    ThisWorkbook.SaveAs "E:\Temp\TestE", xlOpenXMLWorkbook, CreateBackup:=False