Excel-VBA-编程教程-2015-完整版(8)

2018-12-17 09:55

Excel-VBA-编程教程-2015-完整版

.Underline=xlUnderlineStyleNone .ColorIndex=11 EndWith

Range(\

Selection.SpecialCells(xlCellTypeFormulas,23).Select WithSelection.Font .Name=\.FontStyle=\.Size=10 20

-----------------------页面37-----------------------

.Strikethrough=False .Superscript=False .Subscript=False .OutlineFont=False .Shadow=False

.Underline=xlUnderlineStyleNone .ColorIndex=3 EndWith

Range(\Selection.EntireRow.Insert Range(\WithSelection.Interior .ColorIndex=13 .Pattern=xlSolid

.PatternColorIndex=xlAutomatic EndWith

Range(\

ActiveCell.FormulaR1C1=\Range(\WithSelection.Interior .ColorIndex=5 .Pattern=xlSolid

.PatternColorIndex=xlAutomatic EndWith

Range(\

ActiveCell.FormulaR1C1=\Range(\WithSelection.Interior .ColorIndex=3 .Pattern=xlSolid

Excel-VBA-编程教程-2015-完整版

Excel-VBA-编程教程-2015-完整版

.PatternColorIndex=xlAutomatic EndWith

Range(\

ActiveCell.FormulaR1C1=\Range(\EndSub

从现在开始,让我们注重于寻找下面两个问题的答案:如何阅读宏代码?如何修改宏代码?

7添加注释

看一下录制的宏代码,请注意那些开头带单引号的行。这些行就是注释。注释默认显示为绿色。执 行宏代码时,VB会忽略这些注释行。注释经常和宏代码放在一起,来整理那些意义不甚明显的语句。 现在,我们来给宏WhatsInACell添加注释。 1.激活VBE窗口

2.在Selection.SpecialCells(xlCellTypeConstants,2).Select前面点击一下,将光标移至该 语句开头,回车

3.将光标往上移一行到空白处,并且添加如下注释,注意前面有单引号(译者:英文状态下的 单引号)

‘Findandformatcellscontainingtext

4.在Selection.SpecialCells(xlCellTypeConstants,1).Select前面点击一下,将光标移至该 21

-----------------------页面38-----------------------

语句开头,回车

5.将光标往上移一行到空白处,并且添加如下注释,注意前面有单引号(译者:英文状态下的 单引号)

‘Findandformatcellscontainingnumbers

6.在Selection.SpecialCells(xlCellTypeFormulas,23).Select前面点击一下,将光标移至该 语句开头,回车

7.将光标往上移一行到空白处,并且添加如下注释,注意前面有单引号(译者:英文状态下的 单引号)

‘Findandformatcellscontainingformulas

8.在Range(\前面点击一下,将光标移至该语句开头,回车 技巧1-6:关于注释

在VBE代码窗口里,以单引号开头的都是注释。注释的默认颜色是绿色。可以通过“选项”对话框 (“工具”-“选项”-“编辑器格式”)更改注释颜色。注释也可以写在代码的后面。例如,在语 句.ColorIndex=11之后添加注释。点击该语句句末,按下Tab键,输入单引号,然后输入注释。 显示如下:

.ColorIndex=11'SetsthefontcolortoViolet

注释除了给用户提供代码目的信息之外,没有任何作用。请别忘记给你的代码写上注释。如果你几 个月后还要回到你的代码,那么注释将帮你大忙。同样,注释可以使别人很快理解你的程序。

Excel-VBA-编程教程-2015-完整版

Excel-VBA-编程教程-2015-完整版

9.将光标往上移一行到空白处,并且添加如下注释,注意前面有单引号(译者:英文状态下的 单引号) ‘Createlegend

8分析宏代码

所有宏过程都以关键词“Sub”开始,以关键词“EndSub”结束。在关键词“Sub”之后是宏的真 正的名字,然后紧跟着是一对括号。在关键词Sub和EndSub之间是那些你每次运行宏代码时VB执 行的语句。VB从上到下读取语句,忽略那些句前带单引号的语句(参见上节关于注释的内容),读 到EndSub时停止。请注意,录制的宏代码里包含许多停顿(译者:英文模式下的句号)。每行代码 中都有停顿,用来连接VBA语言中不同的要素。如何阅读这种语言的用法呢?要从最后一个停顿的 右边向左读。看看WhatsInACell里的一些语句: Range(\

选择A1到A3单元格 Selection.EntireRow.Insert

往选中的区域中插入行。因为前面你选中的是三个单元格(译者:应该说是占据了三行的单元格), VB将插入三行。

ActiveCell.FormulaR1C1=\往当前单元格里输入“Text”。因为,之前的代码是Range(\,选择单元格B1,B1是当 前激活的单元格,所有VB往B1单元格里面输入文本。 WithSelection.Interior .ColorIndex=3 .Pattern=xlSolid

.PatternColorIndex=xlAutomatic EndWith

这是一段特别的代码块,解释如下:给当前选中的单元格设置单元格填充色为红色(ColorIndex= 3),设置填充模式为实心(xlSolid),并且给当前单元格明确为默认的填充模式(xlAutomatic)。 这个代码块以关键词With开始,EndWith结束,它将加速宏代码的执行。宏代码知道走捷径,而不 会每次都重复下面的说明: Selection.Interior.ColorIndex=3 Selection.Interior.Pattern=xlSolid

Selection.Interior.PatternColorIndex=xlAutomatic

在关键词With后面紧跟重复的Selection.Interior,再以EndWith结尾。 22

-----------------------页面39-----------------------

9清除宏代码

你已经逐行解析了你宏代码,你会发现Excel录制了许多你并不想要包含进去的信息。例如,在选 中了文本单元格后,除了设置字体为粗体和颜色为紫色之外,Excel还录制了其它在字体页的选项 ——字体名称,字体大小,删除线,上标,下标,阴影和下划线。请看下列代码片断: WithSelection.Font

Excel-VBA-编程教程-2015-完整版

Excel-VBA-编程教程-2015-完整版

.Name=\.FontStyle=\.Size=10

.Strikethrough=False .Superscript=False .Subscript=False .OutlineFont=False .Shadow=False

.Underline=xlUnderlineStyleNone .ColorIndex=13 EndWith

如果你使用了对话框,Excel总会录制所有的设定。这些多余的代码使得你的宏代码冗长而难以理 解。因此,你完成录制宏后,最好检查一遍你录制的代码并删除不必要的行。 1.在下面的代码中,删除带删除线的行: WithSelection.Font .Name=\.FontStyle=\.Size=10

.Strikethrough=False .Superscript=False .Subscript=False .OutlineFont=False .Shadow=False

.Underline=xlUnderlineStyleNone .ColorIndex=13 EndWith

清除后,在关键词With和EndWith之间只剩下了两句代码,这些才是你在录制宏的时候真正做 的设置:

WithSelection.Font .FontStyle=\.ColorIndex=13 EndWith

2.找到设置数字单元格格式的代码,依照下面的例子修改代码: 'Findandformatcellscontainingnumbers WithSelection

.SpecialCells(xlCellTypeConstants,1).Select .Font.ColorIndex=11'SetsthefontcolortoViolet EndWith

Range(\

3.找到设置公式单元格格式的代码,依照下面的例子修改代码: 'Findandformatcellscontainingformulas

Selection.SpecialCells(xlCellTypeFormulas,23).Select WithSelection.Font .FontStyle=\

Excel-VBA-编程教程-2015-完整版

Excel-VBA-编程教程-2015-完整版

.ColorIndex=3 23

-----------------------页面40-----------------------

EndWith

4.找到下述两行代码: Range(\Selection.EntireRow.Insert

5.用下面的一句代码取代上面的两句代码: Range(\

注意,Excel使用了R1C1形式来设置选中单元格个公式: ActiveCell.FormulaR1C1=\

ActiveCell.FormulaR1C1=\ActiveCell.FormulaR1C1=\

宏录制器使用了一次“ActiveCell”和一次“Selection”来选择当前单元格。这两个词都称为属 性。你将在第二章里学习属性。当仅有一个单元格被选中时,你可以随意使用“ActiveCell”或者 “Selection”。

10测试修改好的宏

当你修改宏的时候,很可能会带入一些错误。例如,你可能会删除一行重要的代码,或者可能不注 意清除或忽略了一个逗点(停顿)。为了确保你的宏在你修改之后还能正确地工作,你必须运行它。 在VBE窗口,将光标放在宏代码WhatsInACell的任意行,选择“运行”-“运行模块/窗体”

如果你在修改代码的时候,没有带入任何问题,那么宏将顺利运行,而不会有任何报错。你需要切 换到Excel界面取看你的宏运行的结果。你可以点击任务栏,或者按Alt+F11回到Excel界面。

如果宏在运行的过程中遇到错误,你将会看到一个对话框显示发现的错误类型。在你运行宏命令之 前,你必须确保你的宏可以在当前激活的工作表里面运行。例如,你当前电脑上激活的时一个空的 Excel工作表,你试图运行WhatsInACell,这时你将看到一个错误信息:“运行时间错误‘1004’- 找不到单元格”。点击“结束”按钮,在你重新运行宏之前,确保选择了正确的工作表。

如果选择的工作表只含有文本,你在运行WhatsInACell的时候,VB试图选择含有数字的单元格时会 遇到同样的“找不到单元格”的错误。

如果你忽略了WithSelection.Font中的逗点,VB会出现“运行时间错误‘424’-需要对象”的信 息。点击信息框上的“调试”按钮,你将进到代码窗口。同时,VB会进入“中断”模式,并且将有 问题的行用黄色突出出来。在你更正代码后,VB可能会弹出信息:“这个操作将会重置你的工程, 继续?”点击确定。尽管你可以在中断模式修改代码,但是,有些修改会终止宏的继续执行。更正 宏代码后,重新运行它,也许你会需要解决更多的错误,之后才能顺利地运行它。你将在第二章和 第十三章里面学到更多的关于如何处理VBA错误的方法。

11两个层面运行宏的方法

你既可以在Excel界面运行宏,也可以在VB编辑器界面运行它。当你从VB编辑器屏幕执行

WhatsInACell时,VB在屏幕之后执行这些代码。你看不到VB选择和设置格式,也看不到VB插入三空

Excel-VBA-编程教程-2015-完整版


Excel-VBA-编程教程-2015-完整版(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:环卫站车队管理制度

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: