Excel简明宏教程-完美打印版

Excel简明宏教程-完美打印版
Excel简明宏教程-完美打印版

Excel简明宏教程之一

Stone Hou 2012年11月10日星期六

[摘要]:Excel 宏简明教程,编辑美化By siqin.hou@https://www.360docs.net/doc/a612171432.html,

写在前面

Microsoft excel是一款功能非常强大的电子表格软件。它可以轻松地完成数据的各类数学运算,并用各种二维或三维图形形象地表示出来,从而大大简化了数据的处理工作。但若仅利用excel 的常用功能来处理较复杂的数据,可能仍需进行大量的人工操作。但excel的强大远远超过人们的想象--宏的引入使其具有了无限的扩展性,因而可以很好地解决复杂数据的处理问题。

随着支持Windows的应用程序的不断增多和功能的不断增强,越来越多的程序增加了宏处理来方便用户的自由扩展。但初期各应用程序所采用的宏语言并不统一,这样用户每使用一种应用程序时都得重新学习一种宏语言。为了统一各种应用程序下的宏,Microsoft推出了VBA(Visual Basic for Applications)语言。

VBA是从流行的Visual Basic编程语言中派生出来的一种面向应用程序的语言,它适用于各种Windows应用程序,可以解决各应用程序的宏语言不统一的问题。除此之外,使用VBA语言还有如下优点:1、VBA是一种通用程序语言,通过它不仅可以共享Microsoft相关的各种软件(如excel、word、access)……,而且随着其它的一些软件(如大名鼎鼎的AutoCAD2000)等对VBA的支持,这些软件也已进入到了VBA的控制范围;2、可以将用VBA编写的程序复制到Visual Basic 中调试并运行,从而实现用Visual Basic来控制有关的应用程序;3、VBA提供的大量内部函数大大简化了用户的操作。

对于而今的宏,不仅语言统一规范,而且其功能也已非常强大。但在大多数介绍excel的"傻瓜书"、"指南"、"入门与提高"等参考书中往往略过不提,或浅浅带过,读者从中获得的有关知识往往不足以应付处理复杂数据的需求。为了完成工作,就让我们一起来学习"宏"的妙用吧。

一、宏的自学

首先需要明确的是,本文不可能教会您关于宏的所有内容。您需要学会利用"录制宏"的方法来学习宏:点击excel" 工具"下拉菜单中"宏"下->“录制新宏",此后可象平时一样进行有关操作,待

完成后停止录制。然后再点击"工具"下拉菜单中"宏"下"宏"的"编辑"选项即可打开刚才所录制的宏的Visual Basic源程序,并且可以在此时的"帮助"下拉菜单中获得有关的编程帮助。对录制宏进行修改不仅可以学习宏的使用,还能大大简化宏的编写。

二、基本概念

为了学习excel中的宏,我们需要先了解以下一些基本概念。

1、工作簿:Workbooks、Workbook、ActiveWorkbook、ThisWorkbook

Workbooks集合包含excel中所有当前打开的excel工作簿,亦即所有打开的excel文件;Workbook对应Workbooks中的成员,即其中的excel文件;ActiveWorkbook代表当前处于活动状态的工作簿,即当前显示的excel文件;ThisWorkbook代表其中有Visual Basic代码正在运行的工作簿。

在具体使用中可用Workbooks(index)来引用Workbook对象,其中index为工作簿名称或编号;如Workbooks(1)、Workbooks("年度报表.xls")。而编号按照创建或打开工作簿的顺序来确定,第一个打开的工作簿编号为1,第二个打开的工作簿为2……。

2、工作表:Worksheets、Worksheet、ActiveSheet

Worksheets集合包含工作簿中所有的工作表,即一个excel文件中的所有数据表页;而Worksheet则代表其中的一个工作表;ActiveSheet代表当前处于的活动状态工作表,即当前显示的一个工作表。

可用Worksheets(index)来引用Worksheet对象,其中index为工作表名称或索引号;如Worksheets(1)、Worksheets("第一季度数据")。工作表索引号表明该工作表在工作表标签中的位置:第一个(最左边的)工作表的索引号为1,最后一个(最右边的)为Worksheets.Count。需要注意的是:在使用过程中excel会自动重排工作表索引号,保持按照其在工作表标签中的从左至右排列,工作表的索引号递增。因此,由于可能进行的工作表添加或删除,工作表索引号不一定始终保持不变。

3、图表:Chart 、Charts、ChartObject、ChartObjects、ActiveChart

Chart代表工作簿中的图表。该图表既可为嵌入式图表(包含在ChartObject中),也可为一个分开的(单独的)图表工作表。

Charts代表指定工作簿或活动工作簿中所有图表工作表的集合,但不包括嵌入式在工作表或对话框编辑表中的图表。使用Charts(index) 可引用单个Chart图表,其中index是该图表工作表的索引号或名称;如Charts(1)、Charts("销售图表")。图表工作表的索引号表示图表工作表在工作簿的工作表标签栏上的位置。Charts(1)是工作簿中第一个(最左边的)图表工作表;

Charts(Charts.Count)为最后一个(最右边的)图表工作表。

ChartObject代表工作表中的嵌入式图表,其作用是作为Chart对象的容器。利用ChartObject 可以控制工作表上嵌入式图表的外观和尺寸。

ChartObjects代表指定的图表工作表、对话框编辑表或工作表上所有嵌入式图表的集合。可由ChartObjects(index)引用单个ChartObject,其中index为嵌入式图表的编号或名称。如Worksheets("Sheet1").ChartObjects(1)、Worksheets("sheet1").ChartObjects("chart1")分别对应"Sheet1"工作表中的第一个嵌入式图表、以及名为"Chart1"的嵌入式图表。

ActiveChart可以引用活动状态下的图表,不论该图表是图表工作表,或嵌入式图表。而对于图表工作表为活动工作表时,还可以通过ActiveSheet属性引用之。

4、单元格:Cells、ActiveCell、Range、Areas

Cells(row, column)代表单个单元格,其中row为行号,column为列号。如可以用Cells(1,1)、Cells(10,4)来引用"A1"、"D10" 单元格。ActiveCell代表活动工作表的活动单元格,或指定工作表的活动单元格。

Range代表工作表中的某一单元格、某一行、某一列、某一选定区域(该选定区域可包含一个或若干连续单元格区域)或者某一三维区域。

可用Range(arg)来引用单元格或单元格区域,其中arg可为单元格号、单元格号范围、单元格区域名称。如Range("A5")、Range("A1:H8")、Range("Criteria")。虽然可用Range("A1")返回单元格A1,但用Cells更方便,因为此时可用变量指定行和列。[dvnews_page] 可将Range与Cells结合起来使用,如Range(Cells(1,1),Cells(10,10))代表单元格区域

"A1:J10";而expression.Cells(row,column)返回单元格区域中的一部分,其中expression是返回Range的表达式,row和column为相对于该区域的左上角偏移量。如由

Range("C5:C10").Cells(1,1)引用单元格C5。

Areas 为选定区域内的连续单元格块的集合,其成员是Range对象。而其中的每个Range对

象代表选定区域内与其它部分相分离的一个连续单元格块。某些操作不能在选定区域内的多个单元格块上同时执行;必须在选定区域内的单元格块数Areas.Count上循环,对每个单独的单元格块分别执行该操作。此时,可用Areas(index)从集合中返回单个Range对象,其中index为单元格块编号;如Areas(1)。

5、行与列:Rows、Columns、Row、Column

Rows、Columns分别代表活动工作表、单元格区域范围Range、指定工作表中的所有行数、列数。对于一个多选单元格区域范围Range的Rows、Columns,只返回该范围中第一个区域的行数、列数。例如,如果Range对象有两个区域(areas)A1:B2和C3:D4,Rows.Count返回2而不是4。

可通过Rows(行号)、Columns(列号)来引用相应的行与列;如Rows(3)、Columns(4)分别对应第三行、D列。

利用Rows、Column可以获得区域中第一块的第一行行号、第一列列号,所得值均以十进制数表示。

三、处理单元格

1、直接赋值与引用

将变量、常量值直接赋给单元格、或将单元格的值直接赋给变量、常量,这是在excel中最简单的单元格赋值及引用方法。如下例将工作表"Sheet1"A1单元格的值赋给Integer变量I,并将I+1的值赋给当前工作表中的B1单元格:

Dim I As Integer

I=Worksheets ("Sheet1").Cells (1, 1)

Cells(1,2).Select '选定B1单元格,使其成为当前单元格

ActiveCell=I+1 '以I+1为当前单元格赋值

2、用公式赋值

在宏的使用中,可能会更多地用公式来给单元格赋值。如下例将相对于活动单元格左侧第4列、向上第6行至向上第2行的单元格数值之和赋给活动单元格(以本行、本列为第0行、0列):

ActiveCell.Formula="=AVERAGE(R[-6]C[-4]:R[-2]C[-4])"

3、引用其它工作表中的单元格

当赋值公式中需要引用其它工作表中的单元格时,在被引用的单元格前加上"工作表名!"即可。如以下即在赋值中引用了"Sheet1"工作表中的A1至A4单元格:

Range("E10").Formula="=SUM(Sheet1!R1C1:R4C1)"

但需注意的是:当被引用的工作表名中含有某些可能引起公式歧义的字符时,需要用单引号'将工作表名括起来。如:

Worksheets("Sheet1").ActiveCell.Formula="=Max('1-1剖面'!D3:D5)"

4、引用其它工作簿中的单元格

在被引用单元格所在工作表名前加上"[工作簿名]",即可引用其它工作簿中的单元格。如:ActiveCell.Formula="=MAX([Book1.xls]Sheet3!R1C:RC[4])"

同样需注意的是:当被引用的工作簿名中含有某些可能引起公式歧义的字符时,需要用中括号"["、"]"及单引号'将工作簿名括起来。如:

Cells(1,2).Formula="=MIN('[1995-2000总结.xls]1995-1996年'! $A$1:$A$6)"

5、避免循环引用

在上述公式赋值过程中,应避免在公式中引用被赋值的单元格,防止循环引用错误。

6、添加批注

可按如下方法格给单元格添加批注:

Dim 批注文本As String

批注文本="批注示例" '准备批注文本

ActiveCell.AddComment '添加批注

https://www.360docs.net/doc/a612171432.html,ment.T ext T ext:=临时'写入批注文本

https://www.360docs.net/doc/a612171432.html,ment.Visible=False '隐藏批注[dvnews_page]

7、添加、删除、复制、剪切、粘贴单元格

Range("D10").Insert Shift:=xlT oRight '在D10单元格处添加一新单元格,原D10格右移Range("C2").Insert Shift:=xlDown '在C2单元格处添加一新单元格,原C2格下移

Rows(2).EntireRow.Insert '在第2行前添加一空白行,原第2行下移

Columns(3).EntireColumn.Insert '在C列前添加一空白列,原C列右移

Columns("A:D").Delete Shift:=xlT oLeft '删除A列至D列,其右侧列左移

Rows("3:5").Delete Shift:=xlUp '删除第3行至第5行,其下方行上移

Range("B2").EntireRow.Delete '删除第2行

Range("C4").EntireColumn.Delete '删除C列

Range("B10:C13").Copy '复制B10至C13单元格区域

Cells(1,2).Cut '剪切B1单元格

Range("D10").Select

ActiveSheet.Paste '自D10单元格起粘贴剪贴板中的内容

四、图表

1、工作表图表

以下为一添加工作表图表的实例。

Charts.Add after:=Worksheets("Sheet1") '在"Sheet1"工作表之后添加新图表工作表ActiveChart.ChartType=xlXYScatterSmooth '图表类型为XY平滑线散点图

ActiveChart.SetSourceData Source:=Sheets("结点坐标").Range("A1:B69"), PlotBy:= _ xlColumns '图表数据来源于"结点坐标"工作表的A1至B69单元格,且按列绘图。

ActiveChart.Location Where:=xlLocationAsNewSheet

With ActiveChart

.HasTitle = True

.ChartTitle.Characters.T ext = "节点坐标" '图表标题"节点坐标"

.Axes(xlCategory, xlPrimary).HasTitle = True

.Axes(xlCategory, xlPrimary).AxisTitle.Characters.T ext = "x" 'x轴标题"x"

.Axes(xlValue, xlPrimary).HasTitle = True

.Axes(xlValue, xlPrimary).AxisTitle.Characters.T ext = "y" 'y轴标题"y"

End With

With ActiveChart.Axes(xlCategory)

.HasMajorGridlines = True '显示x轴主网格线,默认情况下为显示

.HasMinorGridlines = True '显示x轴次网格线,默认情况下为不显示

End With

With ActiveChart.Axes(xlValue)

.HasMajorGridlines = True '标出x轴主网格值,默认情况下为标注

.HasMinorGridlines = False '取消x轴次网格值标注,默认情况下为不标注

End With

ActiveChart.Legend.Position = xlRight '图例显示在图表右侧

2、嵌入式图表

嵌入式图表仅在添加方式及引用格式上与工作表图表有所不同,而对图表的设置基本类似。详见下例。

Set嵌入表=ActiveSheet.ChartObjects.Add(0,0,200,300) '在当前工作表(0,0)坐标处添加宽200,高300的嵌入式图表

嵌入表.Chart.ChartType = xlColumnClustered '图表类型为簇状柱形图

嵌入表.Chart.SetSourceData Source:=Sheets(1).Range("A2:B2"), PlotBy:=xlRows '设置图表数据来源

With 嵌入表.Chart

.HasTitle = False '无图表标题

.Axes(xlCategory, xlPrimary).HasTitle = False '无x轴标题

.Axes(xlValue, xlPrimary).HasTitle = False '无y轴标题

End With[dvnews_page]

五、工作表

1、添加

Sheets.Add before:=Sheets(1) '在第1工作表前添加新工作表

Sheets.Add after:=Sheets(Sheets.Count) '在最后工作表后添加新工作表

2、移动

ActiveSheet.Move before:=Sheets(2) '将当前工作表移动至第2工作表之前

3、命名

https://www.360docs.net/doc/a612171432.html,="工作表名" '将当前工作表命名为"工作表名"

4、删除

可以用以下语句删除当前工作表。

ActiveSheet.Delete

但在删除前excel会自动弹出提示框,需在用户确认后方可执行删除。为避免这一干扰,可以先用以下语句关闭excel的警告提示。

Application.DisplayAlerts = False

在删除完成后,再重新打开excel的警告提示

Application.DisplayAlerts = True

六、工作簿

excel的宏对工作簿的操作主要为保存。

Dim 存盘文件名As String

ActiveWorkbook.Save '保存当前工作簿

存盘文件名="工作表名"

ActiveWorkbook.SaveAs Filename:= 存盘文件名'当前工作簿另存为"工作表名.xls"

在另存时,若指定的存盘文件名不包含路径,则保存在该工作簿的打开目录下。而若此存盘文件已存在,也可用关闭excel警告提示的方法以免其自动弹出提示框。

Excel简明宏教程之二

Stone Hou 2012年11月10日星期六

[摘要]:Excel 宏简明教程,编辑美化By siqin.hou@https://www.360docs.net/doc/a612171432.html,

一、选中单个单元格

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("<单元格地址>").T ext

六、插入单元格

Selection.Insert Shift:=

Selection.EntireRow.Insert

Selection.EntireColumn.Insert

例:Selection.Insert Shift:=xlT oRight ‘在当前选中单元格的位置插入单元格并将当前选中的单元格向右移动

Selection.Insert Shift:=xlDown ‘在当前选中单元格的位置插入单元格并将当前选中的单元格向下移动

Selection.EntireRow.Insert ‘在当前选中单元格的上面插入一行

Selection.EntireColumn.Insert ‘在当前选中单元格的左侧插入一列

七、设置字体属性

1. 设置字体名称和大小

https://www.360docs.net/doc/a612171432.html, = <字体名称>

Selection.Font.Size = <字号>

例:https://www.360docs.net/doc/a612171432.html, = "隶书"

Selection.Font.Size = 15

2. 设置字体样式

Selection.Font.Bold = ‘加粗

Selection.Font.Italic = ‘斜体

Selection.Font.Underline = < XlUnderlineStyle(下划线样式)> ‘下划线

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 '单元格左边线

xlEdgeT op ‘单元格上边线

xlEdgeRight ‘单元格右边线

xlEdgeBottom ‘单元格下边线

xlDiagonalDown ‘单元格左上右下斜线

xlDiagonalUp ‘单元格左上右下斜线

xlInsideVertical ‘多个单元格内垂直线

xlInsideHorizontal ‘多个单元格内水平线

1. 设置边线的类型

Selection.Borders(<边线>).LineStyle = < XlLineStyle(边线类型)>

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.Delete Shift:=xlT oLeft ‘删除选中的单元格,并将已删除单元格所在位置右面的单元格向左移动

Selection.Delete Shift:=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 =

十二、返回工作表中的行数

https://www.360docs.net/doc/a612171432.html,edRange.Rows.Count ‘返回从最小已输入内容的行号到最大已输入内容的行号之间的行数

https://www.360docs.net/doc/a612171432.html,edRange.Rows(https://www.360docs.net/doc/a612171432.html,edRange.Rows.Count).Row ‘最大已输入内容的行号

十三、得到当前EXCEL的文件名

ThisWorkbook.Path ‘文件路径

https://www.360docs.net/doc/a612171432.html, ‘文件名

ThisWorkbook.FullName ‘全路径

十四、批注的操作

1. 添加批注

AddComment([Content])

例:Range("A1").AddComment ("Writes the content in here!")

2. 修改批注内容

Comment.T ext

例:Range("B1").Comment.T ext T ext:= "Writes the content in here!"

3. 显示/隐藏批注

Comment.Visible =

4. 删除批注

ClearComments

例:Selection.Range("B1").ClearComments

5. 选中批注

Comment.Shape.Select True

例:Range("D8").Comment.Shape.Select True

6. 改变批注大小和位置

Selection.ShapeRange.ScaleWidth <宽度比例>, msoFalse, Selection.ShapeRange.ScaleHeight <高度比例>, msoFalse,

例:Selection.ShapeRange.ScaleWidth 1.5, msoFalse, msoScaleFromT opLeft ‘每次增加5%的宽度

Selection.ShapeRange.ScaleHeight 0.6, msoFalse, msoScaleFromT opLeft ‘每次减少6%的宽度

Selection.ShapeRange.Left = <左边距>

Selection.ShapeRange.T op = <上边距>

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列的内容自动改变列的宽度

十八、案例分析

在Excel 97中,"宏"是一个难以理解的概念,但对于一个具体的"宏"而言,却是容易理解的,如果说"将一块文字变为注释:黑体注释:,字号为注释:三号注释:"就可以看作一个"宏"的话,那么"宏"就不难理解了,其实Excel 97中的许多操作都可以是一个"宏"。

"记录宏"其实就是将工作的一系列操作结果录制下来,并命名存储(相当于VB中一个子程序)。在Excel 97中,"记录宏"仅记录操作结果,而不记录操作过程。例如,改变文字字体时,需要打开"字体"栏中的下拉列表,再选择一种字体,这时文字即变为所选择的字体,这是一个过程,结果是将所选择的文字改变为所选择的字体。而"记录宏"则只记录"将所选择的文字改变为所选择的字体"这一结果。

Excel 97中工作表是由行和列组成的二维表格,我们可以通过系统提供的语句activesheet. cells(I,j),将当前工作表中的第I行第j列所在的单元格中的数据取出(也可将它数据填入到指定的单元格中),然后反把它放入所定义的数组中,这时就可以对其进行各种操作,如求平均分、总分、分数段人数等等。

本人就利用Excel 97中所提供的宏功能来做学生成绩的分析处理程序。本程序是Excel中的一个文件,其中包含以下几个宏:分班、总分、平均分、分数段、删除等。

说明:⑴本程序是以本校高三理科班学生成绩进行分析。

⑵有关程序中用到的几具宏的功能说明:

分班:针对于难以确定班级的情况下,以班为单位进行分班,本宏可以作为高一新生入学时进

行分班的功能。

总分:对原始的成绩自动求总分。

平均分:对原始的成绩以班为单位进行各学科平均成绩的计算及全校各学科成绩的计算。

分数段:给定一个最高分数及最低分数,然后统计出各班各个分数段的人数,各分数段人数进行累计。

删除:用于删除不用的工作表。

现将各个宏的代码列举如下:

⑴分班

Sub 分班()

Const studentno = 191 '注释:学生人数

Const zdno = 12 '注释:字段数

Dim zd$(zdno) ' 注释:定义为12个字段的数组

Dim a(studentno, zdno), stu(60, zdno)

Dim nam$(studentno), bjname$(60) '注释:定义一个存放全校学生名字及各班学生名字的数组

Dim bj(studentno) '注释:定义存放班级的一个数组注释:理科班工作表

Sheets("高三理").Select

For i = 2 T o studentno

bj(i) = ActiveSheet.Cells(i, 1)

nam$(i) = ActiveSheet.Cells(i, 2)

For j = 3 T o zdno

a(i, j) = ActiveSheet.Cells(i, j)

Next j

Next i

Excel宏功能简单应用介绍

OFFice几个出色招数 Word独门绝招: 一、输入三个“=”,回车,得到一条双直线; 二、输入三个“~”,回车,得到一条波浪线; 三、输入三个“*”或“-”或“#”,回车,惊喜多多; Powerpoint出色过招: Q:如果已经word写好一份报告,并且要根据报告的内容做幻灯片,怎么直接把 word文档的标题发送到powerPoint? A:打开word文档,从“文件”菜单单击“发送”命令,再选择发送到ppt。ppt 会自动启动,并且根据每个word文档的一级标题建立一张相同标题的幻灯片,其下的二级标题也会被自动添加到幻灯片。 Excel宏功能简单应用介绍 所谓宏,就是一组指令集,通过执行类似批处理的一组命令,来完成某种功能。Microsoft Office的组件都可以支持宏(Macro)的操作,而Office的宏是指使用VB Script指令集(VB编程语言的子集,可以使用VB的常用语句)编写的针对Office组件的小程序。利用宏,我们可以完成很多程序原本并不支持的特殊应用,比如完成某种特殊的数据计算,或者文档的特殊格式排版等等。下面,就让我们举个简单的例子,看看宏在Excel中如何应用。 有这样一个Excel表格,工作表Sheet1中的第2行的B列开始至D列的连续单元格中是一组共3个数据,第A列的第3行开始至第6行的连续单元格中是一组共4个日期,要编写一段宏来完成这样的工作:将Sheet1第2行的数据由左至右依次纵向复制到Sheet2的B列(从B2开始)中,然后将这组复制完的3个数据所在行的A列都填入Sheet1的A3单元格里面的日期,完成后重复之前的操作,将Sheet1第2行的数据再次复制到Sheet2的B列,这次是从上次复制的B列数据下面的空白单元格,也就是B5开始,然后再在这次复制的3个数据的左侧A列填入Sheet1的A4单元格的日期,这样反复循环,直到Sheet1的A列的所有日期都出现在了Sheet2的A列里面,也就是Sheet1的第2行数据在Sheet2的B列里面被复制了4次为止。 编写宏只要有一点点简单的VB编程知识就可以了,并不一定需要很高深的编程技巧,很多时候我们需要的只是一些重复的操作,我们可以通过宏的录制功

一些实用的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"

Excel宏功能简单应用介绍

Excel宏功能简单应用介绍 所谓宏,就是一组指令集,通过执行类似批处理的一组命令,来完成某种功能。MicrosoftOffice的组件都可以支持宏(Macro)的操作,而Office的宏是指使用VB Script指令集(VB编程语言的子集,可以使用VB的常用语句)编写的针对Office组件的小程序。利用宏,我们可以完成很多程序原本并不支持的特殊应用,比如完成某种特殊的数据计算,或者文档的特殊格式排版等等。下面,就让我们举个简单的例子,看看宏在Excel中如何应用。 有这样一个Excel表格,工作表Sheet1中的第2行的B列开始至D列的连续单元格中是一组共3个数据,第A列的第3行开始至第6行的连续单元格中是一组共4个日期,要编写一段宏来完成这样的工作:将Sheet1第2行的数据由左至右依次纵向复制到Sheet2的B列(从B2开始)中,然后将这组复制完的3个数据所在行的A列都填入Sheet1的A3单元格里面的日期,完成后重复之前的操作,将Sheet1第2行的数据再次复制到Sheet2的B列,这次是从上次复制的B列数据下面的空白单元格,也就是B5开始,然后再在这次复制的3个数据的左侧A列填入Sheet1的A4单元格的日期,这样反复循环,直到She et1的A列的所有日期都出现在了Sheet2的A列里面,也就是Sheet1的第2行数据在 Sheet2的B列里面被复制了4次为止。 编写宏只要有一点点简单的VB编程知识就可以了,并不一定需要很高深的编程技巧,很多时候我们需要的只是一些重复的操作,我们可以通过宏的录制功能来录制一次需要的操作过程,然后再对已经录制的宏进行简单的修改,就能得到所需要的宏了。 对于上面这个事例,实际上只是简单的复制操作,所以甚至连录制的工作都可以省掉了。因为所需要的操作是一个循环的过程,所以我们可以使用一个循环语句来编写程序,这样只要写出一个完成的复制过程,一次循环就可以达到我们的目的了。循环判断的依据就是是否Sheet1的A列所有日期都复制过了,因为数据都是连续排列的,艘以我们可以把Sheet1的A列某个单元格是否有数据作为进入循环的条件,依次复制日期,直到A7这个没有数据的空单元格,循环结束,我们的工作也就完成了。至于循环里面的内容,我们同样再嵌套一个循环,只不过这次是判断第2行的数据是否全都复制完成了,在这个循环里面自然就是单元格数据和日期的复制了。 Sub Macro1() Dim st1y Dim st2y Dim st1x

办公高手EXCEL常用宏命令

办公高手.EXCEL常用宏命令 1 设置打开时弹出对话框的命令举例: Sub AUTO_OPEN() "输入打开工作表时要运行的代码或宏" End Bub 2 设置关闭时弹出对话框的命令举例: Sub AUTO_CLOSE() "输入关闭工作表时要运行的代码或宏" End Bub 3 设置提示框举例: MsgBox prompt:="温馨提示:您要打开的工作表有保护!", Buttons:=vbOKOnly, Title:="谷子提示 " i = MsgBox("系统提供不同服务,是否浏览资费信息?", vbYesNoCancel, "谷子提示:") If i = vbYes Then MsgBox "资费信息:********", , "谷子提示" Else "输入要运行的代码" End If 4、提示框内容过长,换行vbNewLine: MsgBox "您本次访问系统的时间是:" & Date & " " & Time & vbNewLine & "系统离到期日还剩余:" _ & DateDiff("d", Now, "2010-12-31") & " 天!" & vbNewLine & "是否查阅到期日说明?", vbYesNoCancel, "时间和到期日提示:" 5 提示提示系统的日期和时间: MsgBox "系统当前日期和时间:" & Date & " " & Time, , "时间提示" DateDiff("d", Now, "2010-10-31") & " 天!" ‘提示离指定日期的剩余天数 6 系统时间判断命令: Sub 判断时间测试() If Date > "2010-05-20" Then MsgBox "对不起,测试期间已经结束", , "谷子提示" Else Sheets("首页").Select '或其他命令 End If End Sub 7 禁止保存或另存的命令: Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) MsgBox ("禁止保存") Cancel = True '或thisworkbook.saved=true End Sub 8 保护工作表与撤销保护 Sheet2.Protect Password:="123456", DrawingObjects:=True, Contents:=True, Scenarios:=True '保护工作表SHEET2 Sheet2.Unprotect ("123456") '解除保 护 9 保护工作簿与撤销保护 ActiveWorkbook.Protect Structure:=True, Windows:=False, Password:="123" ActiveWorkbook.Unprotect Password:="123"

EXCEL如何使用宏

在介绍学习VBA之前,应该花几分钟录制一个宏。 新术语:“宏”,指一系列EXCEL能够执行的VBA语句。 以下将要录制的宏非常简单,只是改变单元格颜色。请完成如下步骤: 1)打开新工作簿,确认其他工作簿已经关闭。 2)选择A1单元格。调出“常用”工具栏。 3)选择“工具”—“宏”—“录制新宏”。 4)输入“改变颜色”作为宏名替换默认宏名,单击确定,注意,此时状态栏中显示“录制”,特别是“停止录制”工具栏也显示出来。替换默认宏名主要是便于分别这些宏。 ★宏名最多可为255个字符,并且必须以字母开始。其中可用的字符包括:字母、数字和下划线。宏名中不允许出现空格。通常用下划线代表空格。 5)选择“格式”的“单元格”,选择“图案”选项中的红色,单击“确定”。 6)单击“停止录制”工具栏按钮,结束宏录制过程。 ※如果“停止录制”工具栏开始并未出现,请选择“工具”—“宏”—“停止录制”。 录制完一个宏后就可以执行它了。 1.4 执行宏 当执行一个宏时,EXCEL按照宏语句执行的情况就像VBA代码在对EXCEL进行“遥控”。但VBA的“遥控”不仅能使操作变得简便,还能使你获得一些使用EXCEL标准命令所无法实现的功能。而且,一旦熟悉了EXCEL的“遥控”,你都会奇怪自己在没有这些“遥控”的情况下,到底是怎么熬过来的。要执行刚才录制的宏,可以按以下步骤进行: 1)选择任何一个单元格,比如A3。 2)选择“工具”—“宏”—“宏”,显示“宏”对话框。 3)选择“改变颜色”,选择“执行”,则A3单元格的颜色变为红色。试着选择其它单元格和几个单元格组成的区域,然后再执行宏,以便加深印象。 1.5 查看录制的代码 到底是什么在控制EXCEL的运行呢?你可能有些疑惑.好,让我们看看VBA的语句吧. 1)选择“工具”—“宏”—“宏”,显示“宏”对话框。 2)单击列表中的“改变颜色”,选择“编辑”按钮。 此时,会打开VBA的编辑器窗口(VBE)。关于该编辑器,以后再详细说明,先将注意力集中到显示的代码上。代码如下:(日期和姓名会有不同) Sub 改变颜色() ' ' 改变颜色Macro ' xw 记录的宏2000-6-10 ' ' With Selection.Interior

excel常用宏

1.拆分单元格赋值 Sub 拆分填充() Dim x As Range For Each x In https://www.360docs.net/doc/a612171432.html,edRange.Cells If x.MergeCells Then x.Select x.UnMerge Selection.Value = x.Value End If Next x End Sub 2.E xcel 宏按列拆分多个excel Sub Macro1() Dim wb As Workbook, arr, rng As Range, d As Object, k, t, sh As Worksheet, i& Set rng = Range("A1:f1") Application.ScreenUpdating = False Application.DisplayAlerts = False arr = Range("a1:a" & Range("b" & Cells.Rows.Count).End(xlUp).Row) Set d = CreateObject("scripting.dictionary") For i = 2 To UBound(arr) If Not d.Exists(arr(i, 1)) Then Set d(arr(i, 1)) = Cells(i, 1).Resize(1, 13) Else Set d(arr(i, 1)) = Union(d(arr(i, 1)), Cells(i, 1).Resize(1, 13)) End If Next k = d.Keys t = d.Items For i = 0 To d.Count - 1 Set wb = Workbooks.Add(xlWBATWorksheet) With wb.Sheets(1) rng.Copy .[A1] t(i).Copy .[A2] End With wb.SaveAs Filename:=ThisWorkbook.Path & "\" & k(i) & ".xlsx" wb.Close Next

【免费下载】EXCEL宏的使用

目录 EXCEL宏的使用 (2) 一、选中单个单元格 (2) 二、选中多个单元格 (2) 三、设置活动单元格 (2) 四、给活动的单元格赋值 (3) 五、得到指定单元格中的值 (3) 六、插入单元格 (3) 七、设置字体属性 (4) 八、清空选中单元格里的内容 (5) 九、设置选中单元格的边线属性 (5) 十、删除选中的单元格 (6) 十一、设置单元格背景色及图案 (7) 十二、返回工作表中的行数 (8) 十三、得到当前EXCEL的文件名 (8) 十四、批注的操作 (8) 十五、剪切、复制、粘贴 (9) 十六、选择性粘贴 (10) 十七、改变列宽 (10) 1

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 注:设置活动单元格与选中单元格类似,不同之处就是 后者在选中指定的单元格之前会将在此前已被选中的单元格取消掉。 前者在设置之前不会取消已选中的单元格,如果此时操作的单元格不是被选中的单元格,这时他实现的功能与选一个单元格相同。 2

Excel常见宏命令

清除剪贴板 Sub清除剪贴板() Application.CutCopyMode=False https://www.360docs.net/doc/a612171432.html,mandBars("Task Pane").Visible=False End Sub 批量清除软回车 Sub批量清除软回车() '也可直接使用Alt+10或13替换 Cells.Replace What:=Chr(10),Replacement:="", LookAt:=xlPart,SearchOrder:=_ xlByRows,MatchCase:=False,SearchFormat:=False, ReplaceFormat:=False End Sub 判断指定文件是否已经打开 Sub判断指定文件是否已经打开() Dim x As Integer For x=1To Workbooks.Count If Workbooks(x).Name="函数.xls"Then'文件名称MsgBox"文件已打开" Exit Sub End If Next MsgBox"文件未打开" End Sub 当前文件另存到指定目录 Sub当前激活文件另存到指定目录() ActiveWorkbook.SaveAs Filename:="E:\信件\"& https://www.360docs.net/doc/a612171432.html, End Sub

另存指定文件名 Sub另存指定文件名() ActiveWorkbook.SaveAs ThisWorkbook.Path&"\别名.xls" End Sub 以本工作表名称另存文件到当前目录 Sub以本工作表名称另存文件到当前目录() ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path&"\" &https://www.360docs.net/doc/a612171432.html,&".xls" End Sub 将本工作表单独另存文件到Excel当前默认目录 Sub将本工作表单独另存文件到Excel当前默认目录() ActiveSheet.Copy ActiveWorkbook.SaveAs Filename:=https://www.360docs.net/doc/a612171432.html,& ".xls" End Sub 以活动工作表名称另存文件到Excel当前默认目录 Sub以活动工作表名称另存文件到Excel当前默认目录() ActiveWorkbook.SaveAs Filename:=https://www.360docs.net/doc/a612171432.html,& ".xls",FileFormat:=_ xlNormal,Password:="",WriteResPassword:="", ReadOnlyRecommended:=False_ ,CreateBackup:=False End Sub 另存所有工作表为工作簿 Sub另存所有工作表为工作簿() Dim sht As Worksheet Application.ScreenUpdating=False ipath=ThisWorkbook.Path&"\" For Each sht In Sheets

【强烈推荐】Excel宏的用法详解讲解

宏的用法详解 1.1 VBA是什么 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用excel的宏语言来使excel自动化,使用word BASIC使word自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA,可以认为VBA是非常流行的应用程序开发语言VASUAL BASIC 的子集.实际上VBA是"寄生于"VB应用程序的版本.VBA和VB的区别包括如下几个方面: 1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(excel等自动化 2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序. 3. 要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE,而VBA开发的程序必须依赖于它的"父"应用程序,例如excel. 尽管存在这些不同,VBA和VB在结构上仍然十分相似.事实上,如果你已经了解了VB,会发现学习VBA非常快.相应的,学完VBA会给学习VB打下坚实的基础.而且,当学会在excel中用VBA创建解决方案后,即已具备在word access OUTLOOK FOXPRO PROWERPOINT 中用VBA创建解决方案的大部分知识. * VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化. * VBA可以称作excel的“遥控器”. VBA究竟是什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案. 此外,如果你愿意,还可以将excel用做开发平台实现应用程序. 1.2 excel环境中基于应用程序自动化的优点 也许你想知道VBA可以干什么?使用VBA可以实现的功能包括: 1. 使重复的任务自动化. 2. 自定义excel工具栏,菜单和界面. 3. 简化模板的使用.

Excel常用宏大全

Excel 常用宏大全(一) 259个常用宏-excelhome-LangQueS(1) 2008-04-01 17:21 打开全部隐藏工作表 Sub 打开全部隐藏工作表() Dim i As Integer For i = 1 To Sheets.Count Sheets(i).Visible = True Next i End Sub 循环宏 Sub 循环() AAA = Range("C2") Dim i As Long Dim times As Long times = AAA 'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于47) For i = 1 To times Call 过滤一行 If Range("完成标志") = "完成" Then Exit For '如果名为'完成标志'的命名单元的值等于'完成',则退出循环,如果一开始就等于'完成',则只执行一次循环就退出 'If Sheets("传送参数").Range("A" & i).Text = "完成" Then Exit For '如果某列出现"完成"内容则退出循环

Next i End Sub 录制宏时调用“停止录制”工具栏 Sub 录制宏时调用停止录制工具栏() https://www.360docs.net/doc/a612171432.html,mandBars("Stop Recording").Visible = True End Sub 高级筛选5列不重复数据至指定表 Sub 高级筛选5列不重复数据至Sheet2() Sheets("Sheet2").Range("A1:E65536") = "" '清除Sheet2的A:D列 Range("A1:E65536").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet2.Range( _ "A1"), Unique:=True Sheet2.Columns("A:E").Sort Key1:=Sheet2.Range("A2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin End Sub 双击单元执行宏(工作表代码) Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Range("$A$1") = "关闭" Then Exit Sub Select Case Target.Address Case "$A$4" Call 宏1

257个Excel宏常用语句

257个Excel宏常用语句 1、打开全部隐藏工作表 (7) 2、循环宏 (7) 3、录制宏时调用“停止录制”工具栏 (7) 4、高级筛选5列不重复数据至指定表 (7) 5、双击单元执行宏(工作表代码) (8) 6、双击指定区域单元执行宏(工作表代码) (8) 7、进入单元执行宏(工作表代码) (8) 8、进入指定区域单元执行宏(工作表代码) (9) 9、在多个宏中依次循环执行一个(控件按钮代码) (9) 10、在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码) (9) 11、在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码) (10) 12、根据A1单元文本隐藏/显示按钮(控件按钮代码) (10) 13、当前单元返回按钮名称(控件按钮代码) (10) 14、当前单元内容返回到按钮名称(控件按钮代码) (11) 15、奇偶页分别打印 (11) 16、自动打印多工作表第一页 (11) 17、查找A列文本循环插入分页符 (12) 18、将A列最后数据行以上的所有B列图片大小调整为所在单元大小 (12) 19、返回光标所在行数 (13) 20、在A1返回当前选中单元格数量 (13) 21、返回当前工作簿中工作表数量 (13) 22、返回光标选择区域的行数和列数 (13) 23、工作表中包含数据的最大行数 (13) 24、返回A列数据的最大行数 (13) 25、将所选区域文本插入新建文本框 (14) 26、批量插入地址批注 (14) 27、批量插入统一批注 (14) 28、以A1单元内容批量插入批注 (15) 29、不连续区域插入当前文件名和表名及地址 (15) 30、不连续区域录入当前单元地址 (15) 31、连续区域录入当前单元地址 (15) 32、返回当前单元地址 (16) 33、不连续区域录入当前日期 (16) 34、不连续区域录入当前数字日期 (16) 35、不连续区域录入当前日期和时间 (16) 36、不连续区域录入对勾 (16) 37、不连续区域录入当前文件名 (16) 38、不连续区域添加文本 (16) 39、不连续区域插入文本 (17) 40、从指定位置向下同时录入多单元指定内容 (17) 41、按aa工作表A列的内容排列工作表标签顺序 (17) 42、以A1单元文本作表名插入工作表 (17)

excel常用宏集合

65:删除包含固定文本单元的行或列 Sub 删除包含固定文本单元的行或列() Do (what:="哈哈").Activate '删除行 ' '删除列 Loop Until (what:="哈哈") Is Nothing End Sub 72:在指定颜色区域选择单元时添加/取消"√"(工作表代码) Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim myrg As Range For Each myrg In Target If = 37 Then myrg = IIf(myrg <> "√", "√", "") Next End Sub 73:在指定区域选择单元时添加/取消"√"(工作表代码) Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Rng As Range If <= 15 Then If Not (Target, Range("D6:D20")) Is Nothing Then For Each Rng In Selection With Rng If .Value = "" Then .Value = "√" Else .Value = "" End If End With Next End If End If End Sub 74:双击指定单元,循环录入文本(工作表代码)

Private Sub Worksheet_BeforeDoubleClick(ByVal T As Range, Cancel As Boolean) If <> "$A$1" Then Exit Sub Cancel = True T = IIf(T = "好", "中", IIf(T = "中", "差", "好")) End Sub 75:双击指定单元,循环录入文本(工作表代码) Dim nums As Byte Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If = "$A$1" Then nums = nums Mod 3 + 1 Target = Mid("上中下", nums, 1) (1, 0).Select End If End Sub 76:单元区域引用(工作表代码) Private Sub Worksheet_Activate() ("A1:B3").Value = ("A1:B3").Value End Sub 77:在指定区域选择单元时数值加1(工作表代码) Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not ([a1:e10], Target) Is Nothing Then Target = Val(Target) + 1 End If End Sub 259个常用宏-excelhome(3) 2009-08-15 14:12:58 78:混合文本的编号 Sub 混合文本的编号() Worksheets(1).Range("B2").Value = "北京" & (--(Mid(Worksheets(1).Range("B2"), 3,

在电子表格中宏的作用及设置

在电子表格中,宏的作用及设置?? 宏是一个指令集,用来告诉EXCEL来完成用户指定的动作。宏类似于计算机程序,但是它是完全运行于EXCEL之中的,我们可以使用宏来完成枯燥的、频繁的重复性工作。宏完成动作的速度比用户自己做要快得多。例如,我们可以创建一个宏,用来在工作表的每一行上输入一组日期,并在每一单元格内居中对齐日期,然后对此行应用边框格式。我们还可以创建一个宏,在“页面设置”对话框中指定打印设置并打印文档。 由于宏病毒的影响和对编程的畏惧心理,使很多人不敢用“宏”,或是不知道什么时候可以找宏来帮忙。其实你尽管放心大胆地去用,如果只是用“录制宏”的方法,根本就没有什么难的,只是把一些操作象用录音机一样录下来,到用的时候,只要执行这个宏,系统就会把那操作再执行一遍。 下面给出了宏的应用场合,只要用“录制宏”就可以帮你完成任务,而不需要编程。如果想对所录制的宏再进行编辑,就要有一定的VBA知识了。 * 设定一个每个工作表中都需要的固定形式的表头; * 将单元格设置成一种有自己风格的形式; * 每次打印都固定的页面设置; * 频繁地或是重复地输入某些固定的内容,比如排好格式的公司地址、人员名单等; * 创建格式化表格; * 插入工作表或工作薄等。 补充: 最简单使用宏的方式:工具--宏--录制新宏。然后指定一个快捷键,就可以录制了。 录制的过程,其实是将最常用的操作记录下来,下次直接按快捷键就可以操作了。 比如每次需要将页面设置成横向,那么,选择工具--宏--录制新宏,指定CTRL+K 为快捷键,然后就开始了录制过程。选择页面设置,将页面设置成横向,点结束录制。以后打开一个EXCEL表时,只要你按CTRL+K,就可以将页面设置成横向了。

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

EXCEL一般常用宏.

代码目录链接类别 登录打开全部隐藏工作表点击工作表 循环宏点击宏管理 录制宏时调用“停止录制”工具栏点击其他 高级筛选5列不重复数据至指定表点击筛选 在多个宏中依次循环执行一个(控件按钮代码点击宏管理在两个宏中依次循环执行一个并相应修改按钮名称 点击宏管理 (控件按钮代码 在三个宏中依次循环执行一个并相应修改按钮名称 点击宏管理 (控件按钮代码 根据A1单元文本隐藏/显示按钮(控件按钮代码点击控件当前单元返回按钮名称(控件按钮代码点击控件 当前单元内容返回到按钮名称(控件按钮代码点击控件奇偶页分别打印点击打印 自动打印多工作表第一页点击打印 查找A列文本循环插入分页符点击打印 将A列最后数据行以上的所有B列图片大小调整为所在

点击对象 单元大小 返回光标所在行数点击查找和引用 返回光标选择区域的行数和列数点击查找和引用工作表中包含数据的最大行数点击查找和引用返回A列数据的最大行数点击查找和引用 将所选区域文本插入新建文本框点击对象 批量插入地址批注点击批注 批量插入统一批注点击批注 以A1单元内容批量插入批注点击批注 以A1单元文本作表名插入工作表点击单元赋值批量插入当前文件名和表名及地址点击单元赋值区域录入当前单元地址点击单元赋值 区域录入当前日期点击单元赋值 区域录入当前数字日期点击单元赋值 区域录入当前日期和时间点击单元赋值 不连续区域录入对勾点击单元赋值 不连续区域录入当前文件名点击单元赋值 不连续区域添加文本点击单元赋值

不连续区域插入文本点击单元赋值 从指定位置向下同时录入多单元指定内容点击单元赋值 按aa工作表A列的内容排列工作表标签顺序点击工作表 删除全部未选定工作表点击工作表 工作表标签排序点击工作表 在目录表建立本工作簿中各表链接目录点击文件管理 建立工作表文本目录点击工作表 查另一文件的全部表名点击工作表 当前单元录入计算机名点击单元赋值 当前单元录入计算机用户名点击单元赋值 解除全部工作表保护点击工作表为指定工作表加指定密码保护表点击密码 在有密码的工作表执行代码点击密码 执行前需要验证密码的宏(控件按钮代码点击密码 拷贝A1公式和格式到A2点击单元赋值复制单元数值点击单元赋值插入数值条件格式点击格式 插入透明批注点击批注 添加文本点击单元赋值光标定位到指定工作表A列最后数据行下一单元点击定位 定位选定单元格式相同的全部单元格点击定位

相关主题
相关文档
最新文档