上几期手把手教大家如何用VBA代码来删除空行、如何显示行列号以及如何一键导出PDF。这些都在一个工作表里通过按钮的操作。
也就是说换个工作表都不能再用了,更别说换到另外一个工作簿了。
这里说一下工作簿和工作表的区别,工作簿是一个Excel文件(红框),工作簿英文叫workbook。而一个工作簿里有很多工作表(绿框),工作表英文叫worksheet。具体见下图:
如何区别工作簿和工作表的不同
这个请大家注意!这个在以后写代码时要特别小心,必须特别清楚,个中原因只能自己体会。
那回到正题,正如我上一期说的,我们下一步来如定制我们自己的Excel。
而开始之前,这里还需要注意Excel的版本问题,大家都知道Excel有32位和63位之分。我前一段时间更新换了64位(这玩意太坑了)。
结果发现方法还不一样。我会分开来说这两个版本如何的,请注意啊:
- 如果是32位的Excel,是通过把代码放在这个“个人宏工作簿“里才可以实现我说的这个功能。
- 如果是64位的Excel这个方法却不好使了,我试过没搞定,最后是通过加载宏的方法处理的。
所以这一期我先说32位下的Excel的处理方法:
第一步:我们要先启用”宏“,如果已经启用“宏”请略过。方法是打开任意一个Excel工作簿,点击左上角“文件”==》再点击“选项”==》再点击“信任中心”==》再点击“宏设置”
最后选中最后一项“启用所有宏。。。。”,点击“确定”。
如何启用宏
第二步:如果我们的Excel的主菜单上面没有“开发工具”,我们就把“开发工具”增加上去,如果有了”开发工具“也请就略过。添加的方法比较简单,先将鼠标放在主菜单位置,然后右击鼠标。
选中出现菜单中的“自定义功能区。。”,要接下来出现的窗口点击选中“开发工具”,然后确定。我们的主菜单里就可以找看到有“开发工具”了。
如何增加”开发工具“
第三步:我们来处理“个人宏工作簿”,因为前面说过我们要把代码放在“个人宏工作簿“里。正常情况下我们的电脑是没有这个文件的。我们创建“个人宏工作簿”才能出现。
一个最简单的办法:我们通过录制宏的方法来创建“个人宏工作簿”。
这里多说一句,录制宏是我们学习VBA的一个好方法,很多时候能帮我们大忙。那如何录制宏呢?
我们点击“开发工具”,在左边,点击”录制宏“,接下来的窗口,只需要在”保存到“里,选择“个人宏工作簿”,一定一定,切记切记!
接着在鼠标在工作表任意点击几下。然后再点击”停止录制“。这样“个人宏工作簿“就搞定了。
如何通过录制宏,新建个人宏工作簿
但是,这个“个人宏工作簿“放在一个系统指定的地方,我们要进去打开这个工作簿,它的位置在:C:Users用户名称(登录名)AppDataRoamingMicrosoftExcelXLSTART
我们一步一步打开这个文件夹,打开个人宏工作簿这个文件,然后进入VBA编辑器(不记得如何进的,可以查上几期的方法),就会发现模块1里有我们刚刚鼠标动作都被记录下来了。
然后我们将文后的这三个代码复制进去,见上图。记得设置这个”个人宏工作簿“为”隐藏“(视图==》隐藏),先保存一下再关闭!为什么要隐藏呢,你试试不隐藏,看看有啥效果,嘎噶。
第四步:我们最后来定制我们Excel,打开任意一个Excel工作簿,用第二步中提到的方法进入”自定义功能区“,右侧选择”主选项卡“,点击下方的”新建选项卡“,编辑成自己喜欢的名字,越霸气越个性越好,哈哈。
然后选中刚刚新建的选项卡,点击下面的”新建组“,在新建的选项卡下面新建三个组。组也可以自己命名,也可以不命名。
新建选项卡和组
第五步:也是最后一步,给这些新建组来指定宏。先选中我们刚刚新建三个组中的任意一个,在右侧栏中选择”宏“,下面会出现我们第三步粘贴进去的三个代码。
依次选中这三个代码,点击中间的”添加“按钮,将它们依次添加进去,当然你也可以修改名称和图标,选择你喜欢的样子。
指定宏
最后我就会看到我们的主菜单就会变成下面这个样子。也可以试试这几个命令,是不是觉得通打天下了,瞬间开启了另外一个世界呢。
我的地盘我做主
在别人面前,打开Excel. 是不是觉的有一点点吊呀!
It's your time to show off!
以下是上文提到的删除空行、另存为PDF和显示行列号的三个小工具的代码:
Sub ShowRowColumNo()
MsgBox "当前行号:" & ActiveCell.Row & Chr(13) & "当前列号:" & ActiveCell.Column
End Sub
Sub SaveAsPDF()
On Error Resume Next
Dim sName
sName = ActiveWorkbook.path & "" & Split(ActiveWorkbook.Name, ".")(0) & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=sName, Quality:=xlQualityStandard, _
IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub
Sub DeleteEmptyRow()
Dim i
Application.DisplayAlerts = True
For i = ActiveSheet.UsedRange.Rows.Count To 2 Step -1
If Application.WorksheetFunction.CountA(Rows(i)) = 0 Then
Rows(i).Delete
End If
Next
Application.DisplayAlerts = False
End Sub
其它的工具,就照葫芦画瓢的事情!祝大家玩得愉快!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。