![39810824107227b9348227777ed349bf.png](https://i-blog.csdnimg.cn/blog_migrate/3f1e14c220d00a62a2c44a0ca776faf5.png)
写在题外:上次第一篇写原稿是在Word文档里面写的,当我直接复制文档里的内容到微信公众号的编辑器里的时候发现自带了文字格式,而且好像是改不掉的【抓狂】。我只好把文字复制到txt文档,再复制到公众号编辑器里,这样才没自带格式。
正题开始~
第一篇的时候说到宏录制只是带过,这一次以“另存为”和“保存”为例要简单讲解一下。先上效果视频。
知乎视频www.zhihu.com接下来看看如何使用宏录制录制上述操作的框架。
知乎视频www.zhihu.com如视频所见,插入按钮控件→点击录制→进行所需录制的操作→停止录制,打开代码相应模块的代码窗就可以看到所录制操作的代码。录制的终归是录制的,我们还是要去理解其中语句,进一步修改才能更加适合我们的使用环境。
附上修改后完整代码:
Sub 按钮2_Click()
Application.DisplayAlerts = False
ThisWorkbook.Save
Sheet2.Delete
ThisWorkbook.SaveAs ThisWorkbook.Path & "" & Format(Date, "yyyymmdd") & "烧烤摊档营收报表.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Application.DisplayAlerts = True
End Sub
首先是宏录制产生的ActiveWorkbook.Save。“.Save”就是“保存”这个动作,“ActiveWorkbook”是指当前活跃的工作簿。我通常会修改为“ThisWorkbook.Save”,“ThisWorkbook”是指当前运行宏所在的工作簿,可以更加准确地定位。如果要修改需要保存对象,就是修改“.Save”前面的内容。
“.Delete”就是删除动作,就不再赘述啦......
Application.DisplayAlerts = False目的是屏蔽程序执行过程中出现的弹窗警告。比如上述“.Delete”操作是会弹窗询问“是否删除”的,此语句会默认进行删除操作不再询问,设置为“True”即为可以弹窗询问。
接下来是“SaveAs”,前面的内容意义与“.Save”一样,但是后面多了三个参数:“Filename”、“FileFormat”和“CreatBackup”。
“Filename”实际是另存为的文件路径,录制的视频里的是“C:UsersDickDesktopvba撰写示例1.xlsm”,但这样的写法不够灵活,我修改的是:ThisWorkbook.Path & "" & Format(Date, "yyyymmdd") & "烧烤摊档营收报表.xlsx"。其中“ThisWorkbook.Path”指的就是当前运行宏所在的工作簿的路径,让另存的文件跟随原本的工作簿,另存在相同的路径之下;&是VBA环境下常用的链接符号;""是用作隔开路径和文件名称用的;Format(Date, "yyyymmdd")这个是自动产生当前的日期,引号中的日期格式是可以按需修改的。“烧烤摊档营收报表”请不要在意。
“FileFormat”是文件格式,“xlOpenXMLWorkbook”是指标准工作簿文件格式,表现出来的后缀为".xlsx”。
“CreatBackup”,如果后面定义为True,就会建立一个后缀为".xlk"的文件,会记录相对应文件改动前的内容,现为False则是不建立。
总结一下,这段修改后的代码在一开始先把弹窗警告关闭,接着对当前工作簿保存,接着删除不需要的子表,在与原工作簿相同路径下另存为我们需要的子表,再把弹窗警告打开。
以上!