EXCEL宏编程简明教程(完整版)_
excel宏命令详细讲解

excel宏命令详细讲解Excel宏命令是一种自动化操作工具,可以用来简化重复性的任务,提高工作效率。
本文将详细讲解一些较为冷门但实用的宏表函数,带你玩转宏命令。
一、自定义宏命令自定义宏命令可以根据个人的需求编写,可用于自动完成一系列复杂的操作。
以下是一个例子:Sub MyMacro'将选定的单元格背景设置为黄色Selection.Interior.Color = RGB(255, 255, 0)End Sub二、输入框函数输入框函数可以用来创建用户交互界面,用户可以在输入框中输入值,作为宏的参数。
以下是一个示例:Sub InputBoxDemoDim Value As StringValue = InputBox("请输入您的姓名:")MsgBox "欢迎您," & ValueEnd Sub三、循环函数循环函数可以重复执行一段代码。
以下是两种常用的循环函数:1. For循环For循环可以让代码块重复执行指定次数。
以下是一个示例:Sub ForLoopDemoDim i As IntegerFor i = 1 To 10Cells(i, 1).Value = iNext iEnd Sub2. Do While循环Do While循环会在条件满足时重复执行代码块。
以下是一个示例:Sub DoWhileLoopDemoDim i As Integeri=1Do While i <= 10Cells(i, 2).Value = i * 2i=i+1LoopEnd Sub四、选择函数选择函数可以用来根据条件选择性地执行不同的代码块。
以下是一个示例:Sub ChooseCaseDemoDim Value As StringValue = InputBox("请输入一个数字:")Select Case ValueCase "1"MsgBox "你输入的是数字1"Case "2"MsgBox "你输入的是数字2"Case ElseMsgBox "你输入的是其他数字"End SelectEnd Sub五、错误处理函数错误处理函数可以捕捉和处理出现的错误。
Excel-VBA-编程教程[完整版]、excel高级教程
![Excel-VBA-编程教程[完整版]、excel高级教程](https://img.taocdn.com/s3/m/a5f5f7eb33d4b14e852468b3.png)
目录一、VBA语言基础...................................................................................... .. (1)第一节标识符...................................................................................... . (1)第二节运算符...................................................................................... . (1)第三节数据类型...................................................................................... (1)第四节变量与常量...................................................................................... .. (1)第五节数组...................................................................................... .. (2)第六节注释和赋值语句...................................................................................... (2)第七节书写规范...................................................................................... (2)第八节判断语句...................................................................................... (2)第九节循环语句...................................................................................... (3)第十节其他类语句和错误语句处理...................................................................................... . (4)第十一节过程和函数...................................................................................... . (4)一.Sub过程 (4)二.Function函数 (5)三.Property属性过程和Event事件过程 (5)第十二节内部函数...................................................................................... (5)一.测试函数 (5)二.数学函数 (5)三.字符串函数 (5)四.转换函数 (6)五.时间函数 (6)第十三节文件操作...................................................................................... .. (6)文件 (6)删除 (6)打开 (6)读入 (7)写入 (7)关闭 (7)其他文件函数 (7)二、VISUALBASIC程序设计网络教学 (1)第一课VBA是什么...................................................................................... (1)1.1VBA是什么...................................................................................... . (1)1.2EXCEL环境中基于应用程序自动化的优点 (1)1.3录制简单的宏...................................................................................... . (1)1.4执行宏...................................................................................... . (2)1.5查看录制的代码...................................................................................... (2)1.6编辑录制的代码...................................................................................... (3)1.7录制宏的局限性...................................................................................... (3)1.8小结...................................................................................... .. (3)第二课处理录制的宏...................................................................................... . (3)2.1为宏指定快捷键...................................................................................... (3)2.2决定宏保存的位置...................................................................................... .. (4)2.3个人宏工作簿...................................................................................... . (4)2.3.1保存宏到个人宏工作簿 (4)2.3.2使用并编辑个人宏工作簿中的宏 (4)2.4将宏指定给按钮...................................................................................... (4)2.5将宏指定给图片或其他对象...................................................................................... . (5)2.6小结...................................................................................... .. (5)第三课学习控件...................................................................................... .. (5)-----------------------页面2-----------------------3.1EXCEL开发过程简介...................................................................................... (5)3.2认识不同的控件...................................................................................... (5)3.3向工作表添加控件...................................................................................... .. (6)3.4设置控件的特性...................................................................................... (6)3.5给控件命名...................................................................................... .. (6)3.6使用用户窗体...................................................................................... . (6)3.7疑难解答...................................................................................... (7)第四课理解变量和变量的作用...................................................................................... .. (7)4.1代码存在的位置:模块...................................................................................... (7)4.2对模块的概览...................................................................................... . (7)4.2.1创建过程 (8)4.2.2运行宏 (9)4.3保存对模块所做的改变...................................................................................... (9)4.4变量...................................................................................... .. (9)4.4.1变量的数据类型 (9)4.4.2用Dim语句创建变量(声明变量) (10)4.4.3变量命名的惯例 (10)4.4.4使用数组 (10)4.4.5变量赋值 (11)第五课利用VBA设置工作表使用权限 (11)1.使用WITH语句。
EXCEL宏编程简明教程(完整版)_

Excel宏编程简明教程一)、宏学习首先需要明确的是,本文不可能教会您关于宏的所有内容。
您需要学会利用"录制宏"的方法来学习宏:点击Excel"工具"下拉菜单中"宏"下?quot;录制新宏",此后可象平时一样进行有关操作,待完成后停止录制。
然后再点击"工具"下拉菜单中"宏"下"宏"的"编辑"选项即可打开刚才所录制的宏的Visual Basic源程序,并且可以在此时的"帮助"下拉菜单中获得有关的编程帮助。
对录制宏进行修改不仅可以学习宏的使用,还能大大简化宏的编写。
二)、基本概念为了学习Excel中的宏,我们需要先了解以下一些基本概念。
1、工作簿:Workbooks、Workbook、ActiveWorkbook、ThisWorkbooks集合包含Excel中所有当前打开的Excel工作簿,亦即所有打开的Excel文件;Workbook对应Workbooks中的成员,即其中的Excel文件;ActiveWorkbook代表当前处于活动状态的工作簿,即当前显示的Excel文件;ThisWorkbook代表其中有Visual Basic 代码正在运行的工作簿。
在具体使用中可用Workbooks(index)来引用Workbook对象,其中index为工作簿名称或编号;如Workbooks(1)、Workbooks("年度报表.xls")。
而编号按照创建或打开工作簿的顺序来确定,第一个打开的工作簿编号为1,第二个打开的工作簿为2……。
2、工作表:Worksheets、Worksheet、ActiveSheetWorksheets集合包含工作簿中所有的工作表,即一个Excel文件中的所有数据表页;而Worksheet则代表其中的一个工作表;ActiveSheet代表当前处于的活动状态工作表,即当前显示的一个工作表。
(完整版)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 ‘选中整列例:Row s(“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").SelectActiveCell.FormulaR1C1 = "Name"Range("B1").SelectActiveCell.FormulaR1C1 = "Age"Range("A2:B3").SelectRange("A2").ActivateActiveCell.FormulaR1C1 = " BUG"Range("B2").ActivateActiveCell.FormulaR1C1 = "12"Range("A3").ActivateActiveCell.FormulaR1C1 = "Archer"Range("B3").ActivateActiveCell.FormulaR1C1 = "37"五、得到指定单元格中的值Range("<单元格地址>").Text六、插入单元格Selection.Insert Shift:=<XlDirection值>Selection.EntireRow.InsertSelection.EntireColumn.Insert例:Selection.Insert Shift:=xlToRight ‘在当前选中单元格的位置插入单元格并将当前选中的单元格向右移动Selection.Insert Shift:=xlDown ‘在当前选中单元格的位置插入单元格并将当前选中的单元格向下移动Selection.EntireRow.Insert ‘在当前选中单元格的上面插入一行Selection.EntireColumn.Insert ‘在当前选中单元格的左侧插入一列七、设置字体属性1. 设置字体名称和大小 = <字体名称>Selection.Font.Size = <字号>例: = "隶书"Selection.Font.Size = 152. 设置字体样式Selection.Font.Bold = <True / False> ‘加粗Selection.Font.Italic = <True / False> ‘斜体Selection.Font.Underline = < XlUnderlineStyle(下划线样式)> ‘下划线XlUnderlineStyle(下划线样式):xlUnderlineStyleDouble ‘双下划线xlUnderlineStyleDoubleAccounting ‘会计用双下划线(如果当前单元格中的数据是数字时则下划线的宽度是当前单元格的宽度)xlUnderlineStyleNone 没有下划线xlUnderlineStyleSingle ‘单下划线xlUnderlineStyleSingleAccounting ‘会计用单下划线(如果当前单元格中的数据是数字时则下划线的宽度是当前单元格的宽度)3. 设置字体的颜色Selection.Font.ColorIndex = <0到56之间的数字>Selection.Font.Color = <RGB值>4. 设置字体的特殊效果Selection.Font.Strikethrough = <True / False> ‘删除线Selection.Font.Superscript = <True / False> ‘上标Selection.Font.Subscript = <True / False> ‘下标八、清空选中单元格里的内容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(边线类型)>XlLineStyle(边线类型):xlLineStyleNone ‘无样式xlContinuous ‘单线xlDash ‘破折号线(间隔线)xlDashDot ‘破折号点线xlDashDotDot ‘破折号点点线xlDot ‘点线xlDouble ‘双横线xlSlantDashDot ‘斜点线2. 设置边线的宽度Selection.Borders(<边线>).Weight = <XlBorderWeight(边线的宽度值)>XlBorderWeight(宽度值):xlHairline ‘极细xlThin ‘细xlMedium ‘中等xlThick ‘粗3. 设置边线的颜色Selection.Borders(xlEdgeLeft).ColorIndex = <0到56之间的数字>Selection.Borders(xlEdgeLeft).Color = <RGB值>十、删除选中的单元格Selection.Delete <XlDirection值>Selection.EntireRow.DeleteSelection.EntireColumn.Delete例:Selection.Delete Shift:=xlToLeft ‘删除选中的单元格,并将已删除单元格所在位置右面的单元格向左移动Selection.Delete Shift:=xlUp ‘删除选中的单元格,并将已删除单元格所在位置下面的单元格向上移动Selection.EntireRow.Delete ‘删除选中单元格所在的行Selection.EntireColumn.Delete ‘删除选中单元格所在的列十一、设置单元格背景色及图案1. 背景色Selection.Interior.ColorIndex = <0到56之间的数字> Selection.Interior.Color = <RGB值>2. 图案样式Selection.Interior.Pattern = <Constants(图案样式)>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 = <RGB值>十二、返回工作表中的行数edRange.Rows.Count ‘返回从最小已输入内容的行号到最大已输入内容的行号之间的行数edRange.Rows(edRange.Rows.Count).Row ‘最大已输入内容的行号十三、得到当前EXCEL的文件名ThisWorkbook.Path ‘文件路径 ‘文件名ThisWorkbook.FullName ‘全路径十四、批注的操作1. 添加批注AddComment([Content])例:Range("A1").AddComment ("Writes the content in here!")2. 修改批注内容Comment.Text例:Range("B1").Comment.Text Text:= "Writes the content in here!"3. 显示/隐藏批注Comment.Visible = <True/False>4. 删除批注ClearComments例:Selection.Range("B1").ClearComments5. 选中批注Comment.Shape.Select True例:Range("D8").Comment.Shape.Select True6. 改变批注大小和位置Selection.ShapeRange.ScaleWidth <宽度比例>, msoFalse, <MsoScaleFrom> Selection.ShapeRange.ScaleHeight <高度比例>, msoFalse, <MsoScaleFrom>例:Selection.ShapeRange.ScaleWidth 1.5, msoFalse, msoScaleFromTopLeft ‘每次增加5%的宽度Selection.ShapeRange.ScaleHeight 0.6, msoFalse, msoScaleFromTopLeft ‘每次减少6%的宽度Selection.ShapeRange.Left = <左边距>Selection.ShapeRange.Top = <上边距>Selection.ShapeRange.Width = <宽度值>Selection.ShapeRange.Height = <高度值>十五、剪切、复制、粘贴Selection.Cut ‘剪切Selection.Copy ‘复制ActiveSheet.Paste ‘粘贴例:Range("A1").SelectSelection.CutRange("A2").SelectActiveSheet.PasteSelection.CopyRange("A3").SelectActiveSheet.Paste十六、选择性粘贴Selection.PasteSpecial <option>十七、改变列宽Selection.ColumnWidth = <宽度值> ‘指定列宽例:Columns("A:A").SelectSelection.ColumnWidth = 30 ‘改变已选列的宽度EntireColumn.AutoFit ‘自动改变列宽例:Columns("C:C").EntireColumn.AutoFit ‘根据C列的内容自动改变列的宽度在Excel 97中,"宏"是一个难以理解的概念,但对于一个具体的"宏"而言,却是容易理解的,如果说"将一块文字变为注释:黑体注释:,字号为注释:三号注释:"就可以看作一个"宏"的话,那么"宏"就不难理解了,其实Excel 97中的许多操作都可以是一个"宏"。
EXCEL宏编程简明教程(有实例),

Excel 宏编程简明教程一)、宏学习首先需要明确的是,本文不可能教会您关于宏的所有内容。
您需要学会利用"录制宏"的方法来学习宏:点击Excel"工具"下拉菜单中"宏"下quot;录制新宏",此后可象平时一样进行有关操作,待完成后停止录制。
然后再点击"工具"下拉菜单中"宏"下"宏"的"编辑"选项即可打开刚才所录制的宏的Visual Basic源程序,并且可以在此时的"帮助"下拉菜单中获得有关的编程帮助。
对录制宏进行修改不仅可以学习宏的使用,还能大大简化宏的编写。
二)、基本概念为了学习Excel中的宏,我们需要先了解以下一些基本概念。
1、工作簿:Workbooks、Workbook、ActiveWorkbook、ThisWorkbookWorkbooks集合包含Excel中所有当前打开的Excel工作簿,亦即所有打开的Excel文件;Workbook对应Workbooks中的成员,即其中的Excel文件;ActiveWorkbook代表当前处于活动状态的工作簿,即当前显示的Excel文件;ThisWorkbook代表其中有Visual Basic代码正在运行的工作簿。
在具体使用中可用Workbooks(index)来引用Workbook对象,其中index为工作簿名称或编号;如Workbooks(1)、Workbooks("年度报表.xls")。
而编号按照创建或打开工作簿的顺序来确定,第一个打开的工作簿编号为1,第二个打开的工作簿为2……。
2、工作表:Worksheets、Worksheet、ActiveSheetWorksheets集合包含工作簿中所有的工作表,即一个Excel文件中的所有数据表页;而Worksheet则代表其中的一个工作表;ActiveSheet代表当前处于的活动状态工作表,即当前显示的一个工作表。
excel中编写简单宏的方法步骤

excel中编写简单宏的方法步骤
我们在excel中工作时,如果懂得运用宏的话,可以让我们在工作中省很多的时间,Excel中的宏具体该如何编写呢?接下来是店铺为大家带来的excel中编写简单宏的教程,供大家参考。
excel中编写简单宏的教程
1、首先打开excel,点击开发工具单击选择插入,之后在下拉的菜单中的表单中的控件里面选择”按钮“的图标。
2、然后再弹出的一个对话框“指定宏”的时候,单机新建的按钮。
3、这样就进入到Excel的VBA程序宏的编辑界面,进入之后写一个演示宏,然后点击保存。
4、这个时候程序就已经写好了,当点击excel中的按钮的时候会弹出一个hello world的消息提示框。
Excel宏命令编写指南

Excel宏命令编写指南第一章:引言Excel是一款功能强大的电子表格软件,广泛应用于数据分析、报表制作、统计计算等工作中。
为了提高工作效率,Excel宏命令成为必备技能之一。
本文将为大家介绍Excel宏命令的基本概念和常用编写方法。
第二章:Excel宏概述2.1 宏的定义Excel宏是一组可以记录和重复执行特定任务的命令序列。
通过使用宏命令,用户可以自动化执行繁琐的操作,提高工作效率。
2.2 宏的优势宏命令具有以下几个优势:(1) 自动化操作:通过录制宏命令,可以省去手动操作的重复性工作,提高工作效率。
(2) 灵活性:宏命令可以根据具体需求进行编辑和修改,实现个性化的工作流程。
(3) 一键执行:通过为宏命令设置快捷键或按钮,可以在需要时随时执行,提高操作便捷性。
第三章:录制宏命令3.1 启用开发工具栏为了开始录制宏命令,首先需要启用Excel的开发工具栏。
在Excel菜单栏中选择“文件”->“选项”->“自定义功能区”,勾选“开发工具栏”,点击“确定”即可。
3.2 录制宏命令步骤(1) 在开发工具栏中选择“录制宏”按钮,弹出录制宏对话框。
(2) 输入宏的名称和快捷键(可选),选择宏的存储位置。
(3) 点击“确定”开始录制宏。
(4) 在Excel中执行需要录制的操作,包括输入数据、格式调整、公式计算等。
(5) 完成录制后,点击开发工具栏中的“停止录制”按钮。
第四章:编辑宏命令4.1 编辑宏代码录制完宏命令后,可以对宏代码进行编辑和修改。
双击开发工具栏中的“Visual Basic”按钮,弹出宏代码编辑器窗口。
在编辑器中可以修改宏命令的细节,如添加条件判断、循环语句等,实现更复杂的功能。
4.2 调用子宏在宏代码中,可以通过调用其他已有的宏命令来实现更高级的功能。
通过调用子宏,可以将多个宏命令组合起来,实现更丰富的功能。
第五章:宏命令的运行方式5.1 快捷键方式在宏命令录制或编辑完成后,可以为宏设置一个快捷键。
一小时搞定简单VBA编程Excel宏编程快速上手

一小时搞定简单VBA编程Excel宏编程快速上手Excel宏编程可以快速完成批量表格操作:复制粘贴、数据过滤等,宏代码基于VB语言实现,有基础的编程经验就能快速阅读。
下面是我的学习笔记。
1. Excel VBA编辑界面(进入路径: sheet名称 --> 鼠标右键菜单 --> 查看代码)2. 输入代码方法:在VBE编辑器的代码模块中输入VBA代码,通常有以下几种方法:■手工键盘输入;■使用宏录制器,即选择菜单“工具——宏——录制新宏”命令,将所进行的操作自动录制成宏代码;■复制/粘贴代码,即将现有的代码复制后,粘贴到相应的代码模块中;■导入代码模块:文件-->导入文件**不用的模块可以:文件-->移出模块3. VB代码阅读扫盲(1) 模块声明:1.Sub sName() ... End Sub2.Sub xxxxx()3.XXXXXXXXX4.End Sub(2) 变量声明:1.Dim sPara As sType2.Dim para1, para2, para33.Dim para4 As workbook, para5 As String4.Dim G As Long(3) 选择结构:1.With ... End With2.If condition Then ... End If3.With Workbooks(1).ActiveSheet4.For G = 1 To Sheets.Count5.Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536 ").End(xlUp).Row + 1, 1)6.Next7.WbN = WbN & Chr(13) & 8.Wb.Close False9.End With(4) 循环结构1.Do While condition ... Loop2.For i = 0 to 100 ... Next(5) 输出Log:MsgBox sString解析拷贝路径下所有Excel到一个工作表下的示例:*************************************************************** ******************************************************************* **1.Sub 合并当前目录下所有工作簿的全部工作表() #模块名称2.Dim MyPath, MyName, AWbName #变量声明3.Dim Wb As workbook, WbN As String4.Dim G As Long5.Dim Num As Long6.Dim BOX As String7.Application.ScreenUpdating = False#停止屏幕刷新8.MyPath = ActiveWorkbook.Path#获取当前工作文件路径9.MyName = Dir(MyPath & "\" & "*.xls") #获取当前文件名(截取字符串)10.AWbName = #获取当前BookName11.Num = 0#准备进入循环处理12.Do While MyName <> ""#第一个循环体:遍历所有文件终止条件是文件名为空13.If MyName <> AWbName Then#条件:文件名当前激活文件不同14.Set Wb = Workbooks.Open(MyPath & "\" & MyName) # 设置工作表的名称(当前Sheet Name)15.Num = Num + 1#计数用于输出16.With Workbooks(1).ActiveSheet17..Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)18.#赋值语句:激活Sheet的A列最后一个单元格赋值为MyName去掉‘.xls’的部分19.#Left 截取字符串去掉了'.xls'20.#workbooks(n) 为取工作簿的写法21.#A65535(一个极大数)单元格向上,最后一个非空的单元格的行号22.For G = 1 To Sheets.Count#嵌套循环体:遍历文件的所有Sheets23.Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65 536").End(xlUp).Row + 1, 1)24.#赋值所有内容到以结束内容空一行开始的表格中25.Next#且套循环体结束26.WbN = WbN & Chr(13) & # & 为合并字符串的符号27.Wb.Close False#对于文件操作结束,关闭Excel文件28.End With#退出第二个判断29.End If#退出第一个判断30.MyName = Dir#怎么拿到第二个bookName31.Loop#循环体结束32.Range("B1").Select#选中B133.Application.ScreenUpdating = True#允许Excel屏幕刷新34.MsgBox "共合并了" & Num & "个工作薄下的全部工作表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Excel宏编程简明教程一)、宏学习首先需要明确的是,本文不可能教会您关于宏的所有内容。
您需要学会利用"录制宏"的方法来学习宏:点击Excel"工具"下拉菜单中"宏"下?quot;录制新宏",此后可象平时一样进行有关操作,待完成后停止录制。
然后再点击"工具"下拉菜单中"宏"下"宏"的"编辑"选项即可打开刚才所录制的宏的Visual Basic源程序,并且可以在此时的"帮助"下拉菜单中获得有关的编程帮助。
对录制宏进行修改不仅可以学习宏的使用,还能大大简化宏的编写。
二)、基本概念为了学习Excel中的宏,我们需要先了解以下一些基本概念。
1、工作簿:Workbooks、Workbook、ActiveWorkbook、ThisWorkbooks集合包含Excel中所有当前打开的Excel工作簿,亦即所有打开的Excel文件;Workbook对应Workbooks中的成员,即其中的Excel文件;ActiveWorkbook代表当前处于活动状态的工作簿,即当前显示的Excel文件;ThisWorkbook代表其中有Visual Basic 代码正在运行的工作簿。
在具体使用中可用Workbooks(index)来引用Workbook对象,其中index为工作簿名称或编号;如Workbooks(1)、Workbooks("年度报表.xls")。
而编号按照创建或打开工作簿的顺序来确定,第一个打开的工作簿编号为1,第二个打开的工作簿为2……。
2、工作表:Worksheets、Worksheet、ActiveSheetWorksheets集合包含工作簿中所有的工作表,即一个Excel文件中的所有数据表页;而Worksheet则代表其中的一个工作表;ActiveSheet代表当前处于的活动状态工作表,即当前显示的一个工作表。
可用Worksheets(index)来引用Worksheet对象,其中index为工作表名称或索引号;如Worksheets(1)、Worksheets("第一季度数据")。
工作表索引号表明该工作表在工作表标签中的位置:第一个(最左边的)工作表的索引号为1,最后一个(最右边的)为Worksheets.Count。
需要注意的是:在使用过程中Excel会自动重排工作表索引号,保持按照其在工作表标签中的从左至右排列,工作表的索引号递增。
因此,由于可能进行的工作表添加或删除,工作表索引号不一定始终保持不变。
3、图表:Chart、Charts、ChartObject、ChartObjects、ActiveChart代表工作簿中的图表。
该图表既可为嵌入式图表(包含在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、AreasCells(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更方便,因为此时可用变量指定行和列。
可将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、ColumnRows、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 IntegerI=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 '添加批注ment.Text Text:=临时'写入批注文本ment.Visible=False '隐藏批注7、添加、删除、复制、剪切、粘贴单元格Range("D10").Insert Shift:=xlToRight '在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:=xlToLeft '删除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").SelectActiveSheet.Paste '自D10单元格起粘贴剪贴板中的内容四)、图表1、工作表图表以下为一添加工作表图表的实例。