EXCEL宏的使用解读.docx
《EXCEL宏的使用解读.docx》由会员分享,可在线阅读,更多相关《EXCEL宏的使用解读.docx(24页珍藏版)》请在冰点文库上搜索。
EXCEL宏的使用解读
EXCEL宏的使用
一、 选中单个单元格
Range(“<单元格地址>“).Select
例:
Range("C9").Select ‘选中“C9”单元格
二、 选中多个单元格
Range(“<单元格地址>:
<单元格地址>[,<单元格地址>……]”).Select
例:
Range(“A1:
B2”).Select ‘选中“A1”、“A2”、“B1”、“B2”四个连续的单元格
Range(“12:
12”).Select ‘选中第12行
Range(“B:
B”).Select ‘选中第B列
Range(“A1:
A2,B7,2:
2”).Select ‘选中“A1”、“A2”、“B7”五个不连续的单元格和第二行
Cells.Select ‘选中当前SHEET中的所有单元格
Rows("<行地址>:
<行地址>").Select ‘选中整行
Columns("<列地址>:
<列地址>").Select ‘选中整列
例:
Rows(“2:
2”).Select ‘选中第2行
Rows(“2:
5”).Select ‘选中2到5行
Columns("A:
A").Select ‘选中A列
Columns("E:
B").Select ‘选中E到B列
三、 设置活动单元格
Range("<单元格地址>").Activate
注:
设置活动单元格与选中单元格类似,不同之处就是
后者在选中指定的单元格之前会将在此前已被选中的单元格取消掉。
前者在设置之前不会取消已选中的单元格,如果此时操作的单元格不是被选中的单元格,这时他实现的功能与选一个单元格相同。
四、 给活动的单元格赋值
ActiveCell.FormulaR1C1=<值>
例:
Range("A1").Select
ActiveCell.FormulaR1C1="Name"
Range("B1").Select
ActiveCell.FormulaR1C1="Age"
Range("A2:
B3").Select
Range("A2").Activate
ActiveCell.FormulaR1C1="BUG"
Range("B2").Activate
ActiveCell.FormulaR1C1="12"
Range("A3").Activate
ActiveCell.FormulaR1C1="Archer"
Range("B3").Activate
ActiveCell.FormulaR1C1="37"
五、 得到指定单元格中的值
Range("<单元格地址>").Text
六、 插入单元格
Selection.InsertShift:
=
Selection.EntireRow.Insert
Selection.EntireColumn.Insert
例:
Selection.InsertShift:
=xlToRight ‘在当前选中单元格的位置插入单元格并将当前选中的单元格向右移动
Selection.InsertShift:
=xlDown ‘在当前选中单元格的位置插入单元格并将当前选中的单元格向下移动
Selection.EntireRow.Insert ‘在当前选中单元格的上面插入一行
Selection.EntireColumn.Insert ‘在当前选中单元格的左侧插入一列
七、 设置字体属性
1. 设置字体名称和大小
Selection.Font.Name=<字体名称>
Selection.Font.Size=<字号>
例:
Selection.Font.Name="隶书"
Selection.Font.Size=15
2. 设置字体样式
Selection.Font.Bold= ‘加粗
Selection.Font.Italic= ‘斜体
Selection.Font.Underline= ‘下划线
XlUnderlineStyle(下划线样式):
xlUnderlineStyleDouble ‘双下划线
xlUnderlineStyleDoubleAccounting ‘会计用双下划线(如果当前单元格中的数据是数字时则下划线的宽度是当前单元格的宽度)
xlUnderlineStyleNone 没有下划线
xlUnderlineStyleSingle ‘单下划线
xlUnderlineStyleSingleAccounting ‘会计用单下划线(如果当前单元格中的数据是数字时则下划线的宽度是当前单元格的宽度)
3. 设置字体的颜色
Selection.Font.ColorIndex=<0到56之间的数字>
Selection.Font.Color=
4. 设置字体的特殊效果
Selection.Font.Strikethrough= ‘删除线
Selection.Font.Superscript= ‘上标
Selection.Font.Subscript= ‘下标
八、 清空选中单元格里的内容
Selection.ClearContents
例:
Range(“A1:
A2,B7,2:
2”).Select ‘选中“A1”、“A2”、“B7”五个不连续的单元格和第二行
Selection.ClearContents ‘清空“A1”、“A2”、“B7”五个不连续单元格中的所有内容
九、 设置选中单元格的边线属性
XlBordersIndex(边线):
xlEdgeLeft '单元格左边线
xlEdgeTop ‘单元格上边线
xlEdgeRight ‘单元格右边线
xlEdgeBottom ‘单元格下边线
xlDiagonalDown ‘单元格左上右下斜线
xlDiagonalUp ‘单元格左上右下斜线
xlInsideVertical ‘多个单元格内垂直线
xlInsideHorizontal ‘多个单元格内水平线
1. 设置边线的类型
Selection.Borders(<边线>).LineStyle=
XlLineStyle(边线类型):
xlLineStyleNone ‘无样式
xlContinuous ‘单线
xlDash ‘破折号线(间隔线)
xlDashDot ‘破折号点线
xlDashDotDot ‘破折号点点线
xlDot ‘点线
xlDouble ‘双横线
xlSlantDashDot ‘斜点线
2. 设置边线的宽度
Selection.Borders(<边线>).Weight=
XlBorderWeight(宽度值):
xlHairline ‘极细
xlThin ‘细
xlMedium ‘中等
xlThick ‘粗
3. 设置边线的颜色
Selection.Borders(xlEdgeLeft).ColorIndex=<0到56之间的数字>
Selection.Borders(xlEdgeLeft).Color=
十、 删除选中的单元格
Selection.Delete
Selection.EntireRow.Delete
Selection.EntireColumn.Delete
例:
Selection.DeleteShift:
=xlToLeft ‘删除选中的单元格,并将已删除单元格所在位置右面的单元格向左移动
Selection.DeleteShift:
=xlUp ‘删除选中的单元格,并将已删除单元格所在位置下面的单元格向上移动
Selection.EntireRow.Delete ‘删除选中单元格所在的行
Selection.EntireColumn.Delete ‘删除选中单元格所在的列
十一、设置单元格背景色及图案
1. 背景色
Selection.Interior.ColorIndex=<0到56之间的数字>
Selection.Interior.Color=
2. 图案样式
Selection.Interior.Pattern=
Constants(图案样式):
xlSolid '实心
xlGray75 '75%灰色
xlGray50 '50%灰色
xlGray25 '25%灰色
xlGray16 '12.5%灰色
xlGray8 '6.25%灰色
xlHorizontal '水平条纹
xlVertical '垂直条纹
xlDown '逆对角线条纹
xlUp '对角线条纹
xlChecker '对角线剖面线
xlSemiGray75 '粗对角线剖面线
xlLightHorizontal '细水平条纹
xlLightVertical '细垂直条纹
xlLightDown '细逆对角线条纹
xlLightUp '细对角线条纹
xlGrid '细水平剖面线
xlCrissCross '细对角线剖面线
3. 图案颜色
Selection.Interior.PatternColorIndex=<0到56之间的数字>
Selection.Interior.PatternColor=
十二、返回工作表中的行数
Sheet1.UsedRange.Rows.Count ‘返回从最小已输入内容的行号到最大已输入内容的行号之间的行数
Sheet1.UsedRange.Rows(Sheet1.UsedRange.Rows.Count).Row ‘最大已输入内容的行号
十三、得到当前EXCEL的文件名
ThisWorkbook.Path ‘文件路径
ThisWorkbook.Name ‘文件名
ThisWorkbook.FullName ‘全路径
十四、批注的操作
1. 添加批注
AddComment([Content])
例:
Range("A1").AddComment("Writesthecontentinhere!
")
2. 修改批注内容
Comment.Text
例:
Range("B1").Comment.TextText:
="Writesthecontentinhere!
"
3. 显示/隐藏批注
Comment.Visible=
4. 删除批注
ClearComments
例:
Selection.Range("B1").ClearComments
5. 选中批注
Comment.Shape.SelectTrue
例:
Range("D8").Comment.Shape.SelectTrue
6. 改变批注大小和位置
Selection.ShapeRange.ScaleWidth<宽度比例>,msoFalse,
Selection.ShapeRange.ScaleHeight<高度比例>,msoFalse,
例:
Selection.ShapeRange.ScaleWidth1.5,msoFalse,msoScaleFromTopLeft ‘每次增加5%的宽度
Selection.ShapeRange.ScaleHeight0.6,msoFalse,msoScaleFromTopLeft ‘每次减少6%的宽度
Selection.ShapeRange.Left=<左边距>
Selection.ShapeRange.Top=<上边距>
Selection.ShapeRange.Width=<宽度值>
Selection.ShapeRange.Height=<高度值>
十五、剪切、复制、粘贴
Selection.Cut ‘剪切
Selection.Copy ‘复制
ActiveSheet.Paste ‘粘贴
例:
Range("A1").Select
Selection.Cut
Range("A2").Select
ActiveSheet.Paste
Selection.Copy
Range("A3").Select
ActiveSheet.Paste
十六、选择性粘贴
Selection.PasteSpecial
十七、改变列宽
Selection.ColumnWidth=<宽度值> ‘指定列宽
例:
Columns("A:
A").Select
Selection.ColumnWidth=30 ‘改变已选列的宽度
EntireColumn.AutoFit ‘自动改变列宽
例:
Columns("C:
C").EntireColumn.AutoFit ‘根据C列的内容自动改变列的宽度
对于什么是宏有许多种解释,总的来说宏是使任务自动化包括在Sub和EndSub之间的一组指令的集合,Excel97的宏就是贮存在VisualBasic模块中的VBA程序。
只有充分使用宏,才能深入理解Excel97数据管理各个方面的精妙之处。
在Excel97应用中怎样使用宏呢?
根据平常实际应用经验,我从以下三个方面谈一点心得。
一、建立宏
直接建立宏有两种途径:
㈠使用Excel97提供的宏记录器建立宏
运用宏记录器记录宏基本可分为三个步骤,第一步:
启动宏记录器。
从Excel97工具菜单中选取“宏”,然后选中“录制新宏”选项,从弹出的“录制新宏”窗口中,用户可以为即将录制的宏定义一个便于识别的名字和快捷键,并确定宏的保存地址,其中宏名为必选项,若用户未定义宏名,宏记录器将自动为所录制的宏定义一个默认的名字,快捷键和保存地址由用户根据需要自由设定,宏记录器默认用户所录制的宏保存在当前工作簿。
第二步:
执行希望录制的动作。
这是使用宏记录器建立宏的关键,因为在这个步骤中,用户每一个完成的动作都将被宏记录器所录制,所以,为了使宏达到简捷、实用的目的,用户的动作一定要精炼、准确,尽可能地用最少的动作完成预定的任务。
第三步:
停止记录。
Excel97的宏记录器具有一定的智能判断能力,只记录已完成的动作,不会记录用户选择错误或修改错误的过程。
例如,它不会记录打开对话框的菜单命令,直到单击了对话框上的“确定”为止,若用户打开对话框后选择了“取消”,宏记录器则不会录制该动作。
在录制宏的过程中,用户不能离开Excel97的工作环境,否则,用户的动作将不能被记录。
举一个简单的例子:
在Excel97中打开一个名为“通讯录.dbf”的数据库文件,运用宏记录器建立一个名为“打开数据库”的宏,具体操作为:
⒈进入Excel97,新建一个工作簿;
⒉将工作簿命名为“打印通讯录”(若准备在工作簿中使用宏应养成为新建工作簿命名的操作习惯);
⒊启动宏记录器,并定义宏名为“打开数据库”;
⒋运用Excel97的打开文件向导打开数据库文件“通讯录.dbf”;
⒌在工具菜单的“宏”选项下选择“停止记录”,或单击“停止录制”按钮。
通过上面的操作并稍加调整得到的宏代码为:
Sub打开数据库()
Workbooks.OpenFileName:
="通讯录.dbf"
EndSub
在文件名前可以包含详细路径,这是由打开文件时选择路径的动作所决定的。
㈡使用VisualBasic编辑器建立宏
Excel97的VisualBasic编辑器的功能十分强大,它不仅可以建立宏,还可以建立用户自定义函数、用户自定义窗体和过程。
从工具菜单的“宏”选项下选择“VisualBasic编辑器”即可进入编辑窗口,在通过编辑器建立宏的过程中,可以使用拷贝、复制、粘贴、删除、插入、查找、替换、缩进、凸出等所有的文本编辑功能,同时编辑器还提供了自动语法检测和提示功能,所以,即使从未涉及宏语言VisualBasicforApplication的用户,也能够在很短的时间内掌握并熟练使用VisualBasic编辑器。
使用VisualBasic编辑器建立宏基本也可以分为三个步骤,即插入模块、编写宏代码、关闭编辑器并返回Excel97。
例如,要将打开的数据库文件“通讯录.dbf”中的记录运用表格的方式打印出来,建立一个名为“打印通讯录”的宏,可以分为以下步骤:
⒈根据数据库的字段建立打印页面。
在本例中数据库文件“通讯录.dbf”有六个字段:
序号、联系人、联系地址、联系电话、邮政编码、备注,其中序号是第一个字段,也是数据库记录的唯一标识,数据库记录按序号值进行升序排列,文件打开后,序号值存放在Excel97工作表的第A列中。
⒉将打印页面工作表命名为“通讯录打印页面”,并根据页面大小确定每页打印的记录数量(在此设为30)。
⒊分析宏运行过程中应注意的要点。
在此例中首先应判断数据记录的个数,以确定需要打印的页数;其次,在打印之前应选择对应的数据填入打印页面;第三,在连续打印的过程中程序应给予适当的提示,允许用户整理打印机或中途退出打印过程。
⒋进入VisualBasic编辑器,插入模块,编写宏代码。
在编写宏代码的过程中可以在代码中加注,以增加宏代码的可读性。
根据以上分析,完成通讯录打印过程的宏代码如下:
Sub打印通讯录()
DimValue,no1,no2,页数AsInteger
Dimsss,sss1,sss2,sss3AsString
DimqqqAsRange
Windows("通讯录.dbf").Activate
'计算A列中值大于0的单元格个数,即记录个数
no1=2 '在"通讯录.dbf"中第一行为字段标题,计数从第二行开始
DoWhileno1>0
sss="a"&no1
Value=Range(sss)
IfValue>0Then
no1=no1+1
Else
ExitDo
EndIf
Loop
sss=Str(no1-2) 'no1的初始值为2,故no1-2为数据库的记录数
'记录数除以每页的记录容量即页数
If(no1-2)/30=Int((no1-2)/30)Then
页数=(no1-2)/30
Else
页数=Int((no1-2)/30)+1
EndIf
sss1=Str(页数)
no2=1
DoWhileno2>0
Windows("通讯录.dbf").Activate
'由于数据库有6个字段,故第1列至第6列为数据区域
Setqqq=Range(Cells((no2-1)*30+2,1),Cells(no2*30+1,6))
qqq.Copy
Windows("打印通讯录.xls").Activate
Sheets("通讯录打印页面").Select
Range("A4").Select '选定打印页面数据区域的左上角
'将相应数据选择性粘贴到打印页面中
Selection.PasteSpecialPaste:
=xlValues,Operation:
=xlNone,SkipBlanks:
=_
False,Transpose:
=False
sss2=Str(no2)
sss3="数据库中共有"+sss+"条记录,共"+sss1+"页,目前表中为第"_
+sss2+"页数据,打印吗?
"
www=MsgBox(sss3,68,"提示")
'当从提示框中选择“否”时用户可中途退出打印过程
Ifwww=vbNoThen
ExitDo
Else
ActiveWindow.SelectedSheets.PrintOutFrom:
=1,To:
=1,_
Copies:
=1,Collate:
=True
EndIf
no2=no2+1
Loop
EndSub
程序执行结果如图所示。
实际上任何文本编辑软件都可以编写宏代码,只是必须将所编写的宏代码粘贴到Excel97的宏模块中才能运行。
以上两种建立宏的方法各有优劣,使用宏记录器建立宏简单、方便,所见即所得,可以省略输入宏代码的过程,基本不用了解宏语言的语法和结构,但不够灵活,不够简捷,所以,运用范围受到限制;使用编辑器建立宏则对用户层次要求较高,要求用户能够熟练使用宏语言VisualBasicforApplication,运用这种方法