vba操作Excel经典的通用的代码PPT
Excel_VBA编程常用实例(150例)
Excel_VBA编程常用实例(150例)主要内容和特点《ExcelVBA编程入门范例》主要是以一些基础而简短的VBA实例来对ExcelV BA中的常用对象及其属性和方法进行讲解,包括应用程序对象、窗口、工作簿、工作表、单元格和单元格区域、图表、数据透视表、形状、控件、菜单和工具栏、帮助助手、格式化操作、文件操作、以及常用方法和函数及技巧等方面的应用示例。
这些例子都比较基础,很容易理解,因而,很容易调试并得以实现,让您通过具体的实例来熟悉ExcelVBA编程。
■ 分16章共14个专题,以具体实例来对大多数常用的ExcelVBA对象进行讲解;■ 一般而言,每个实例都很简短,用来说明使用VBA实现Excel某一功能的操作;■ 各章内容主要是实例,即VBA代码,配以简短的说明,有些例子可能配以必要的图片,以便于理解;■ 您可以对这些实例进行扩充或组合,以实现您想要的功能或更复杂的操作。
VBE编辑器及VBA代码输入和调试的基本知识在学习这些实例的过程中,最好自已动手将它们输入到VBE编辑器中调试运行,来查看它们的结果。
当然,您可以偷赖,将它们复制/粘贴到代码编辑窗口后,进行调试运行。
下面,对VBE编辑器界面进行介绍,并对VBA代码输入和调试的基本知识进行简单的讲解。
激活VBE编辑器一般可以使用以下三种方式来打开VBE编辑器:■ 使用工作表菜单“工具——宏——Visual Basic编辑器”命令,如图00-01所示;■ 在Visual Basic工具栏上,按“Visual Basic编辑器”按钮,如图00-02所示;■ 按Alt+F11组合键。
图00-01:选择菜单“工具——宏——Visual Basic编辑器”命令来打开VBE编辑器图00-02:选择Visual Basic工具栏上的“Visual Basic编辑器”命令按钮来打开VBE编辑器此外,您也可以使用下面三种方式打开VBE编辑器:■ 在任一工作表标签上单击鼠标右键,在弹出的菜单中选择“查看代码”,则可进入VBE编辑器访问该工作表的代码模块,如图00-03所示;■ 在工作簿窗口左上角的Excel图标上单击鼠标右键,在弹出的菜单中选择“查看代码”,则可进入VBE编辑器访问活动工作簿的ThisWorkbook代码模块,如图00-04所示;■ 选择菜单“工具——宏——宏”命令打开宏对话框,若该工作簿中有宏程序,则单击该对话框中的“编辑”按钮即可进行VBE编辑器代码模块,如图00-05所示。
EXCEL VBA基础入门ppt课件
增加鼠标寿命
2
EXCEL VBA基础入门
2.宏的安全性问题 宏是依附于office文件的程序,可能有恶意的宏程序,即宏病 毒。所以一般默认是禁止宏的,再加上编程问题,一般不敢用 “宏”,对于提高办公效率只能依赖于EXCEL技巧。
3
EXCEL VBA基础入门
3. 录制宏
运行宏 录制宏 安全性 VBA编辑器
13
EXCEL VBA基础入门
9. 编写程序
大致流程:
1.明确目的和流程,确定步骤。
2.录制宏(减少误操作)。
3.宏程序简单修减(去掉无用、错误操作信息)。
4.编写宏程序,定义函数,嵌入循环,标明注释。
5.丰富宏程序功能,反复调试。
6.插入艺术字,连接执行宏程序。
14
EXCEL VBA基础入门
1.宏不是万能的,必须有人操作和维护。
EXCEL VBA基础入门
7.程序结构
定义程序开始
定义变量 主程序
注 释 程序结束
12
EXCEL VBA基础入门
8. VBA语法 Do...Loop 语句 可以使用 Do...Loop 语句去运行语句的块,而它所 用掉的时间是不确定的。当条件为 True 或直到条件 变成 True 时,此语句会一直重复。直到条件为 True 时重复语句。
•Range属性:对一个相邻或不相邻的单元格区域返回一个Range对象
Range(“A:C”) Range(“A1:C10”)
Range(“A1:C10,E1:E20”)
•Cells属性:获得对单个单元格的引用 引用单元格D10: Cell(10,4) Cells(x,y).Value = x*y
11
15
经典ExcelVBA代码
经典ExcelVBA代码Application(Excel程序)篇Application.EnableEvents= True/ False ’启用/禁用所有事件Application.DisplayAlerts=True/False ’显示/关闭警告框提示框Application.ScreenUpdating= True/False ’显示/关闭屏幕刷新Application.StatusBar = "软件报专用" ’在地址栏中显示文本,标题栏用Caption属性Application.Cursor = xlIBeam ‘设置光标形状为Ⅰ字形,xlWait为沙漏(等待)形,xlNormal为正常Application.WindowState = xlMinimized ‘窗口最小化,xlMaximized最大化,xlNormal为正常Application.ActivateMicrosoftApp xlMicrosoftWord ’开启Word应用程序Application.TemplatesPath ‘获取工作簿模板的位置Application.CalculateFull ’重新计算所有打开的工作簿中的数据Application.RecentFiles.Maximum = 2 ’将最近使用的文档列表数设为2Application.RecentFiles(3).Open ’打开最近打开的文档中的第3个文档Application.AutoCorrect.AddReplacement "sweek", "软件报" ’自动将输入的"sweek"更正为"软件报"Application.Dialogs(xlDialogPrint).Show ‘显示打印文档的对话框Application.OnTime Now + TimeValue("00:00:45"), "process" ’45分钟后执行指定过程Application.OnTime TimeValue("14:00:00"), " process " ’下午2点执行指定过程Application.OnTime EarliestTime:=TimeValue("14:00:00"), _ Procedure:="process", Schedule:=False ’取消指定时间的过程的执行Application.CutCopyMode = False 退出复制/剪切模式后,在程序运行时所进行的复制或剪切操作不会在原单元格区域留下流动的虚框线。
excelvba常用代码总结
Excel VBA常用代码总结1改变背景色Range("A1"). = xlNoneColorIndex一览改变文字颜色Range("A1"). = 1获取单元格Cells(1, 2)Range("H7")获取范围Range(Cells(2, 3), Cells(4, 5))Range("a1:c3")'用快捷记号引用单元格Worksheets("Sheet1").[A1:B5]选中某sheetSet NewSheet = Sheets("sheet1")选中或激活某单元格'“Range”对象的的Select方法可以选择一个或多个单元格,而Activate 方法可以指定某一个单元格为活动单元格。
'下面的代码首先选择A1:E10区域,同时激活D4单元格:Range("a1:e10").SelectRange("d4:e5").Activate'而对于下面的代码:Range("a1:e10").SelectRange("f11:g15").Activate'由于区域A1:E10和F11:G15没有公共区域,将最终选择F11:G15,并激活F11单元格。
获得文档的路径和文件名'路徑'名稱'路徑+名稱'或将ActiveWorkbook换成thisworkbook隐藏文档= False禁止屏幕更新= False禁止显示提示和警告消息= False文件夹做成strPath = "C:\temp\"MkDir strPath状态栏文字表示= "计算中"双击单元格内容变换Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If >= 5And <= 8) ThenIf = "●"Then= ""Else= "●"End IfCancel = TrueEnd IfEnd Sub文件夹选择框方法1Set objShell = CreateObject("")Set objFolder = (0, "文件", 0, 0)If Not objFolder Is NothingThen path= & "\"end ifSet objFolder = NothingSet objShell = Nothing文件夹选择框方法2(推荐)Public Function ChooseFolder() As StringDim dlgOpen As FileDialogSet dlgOpen = (msoFileDialogFolderPicker)With dlgOpen.InitialFileName = & "\"If .Show = -1ThenChooseFolder = .SelectedItems(1)End IfEnd WithSet dlgOpen = NothingEnd Function'使用方法例:Dim path As Stringpath = ChooseFolder()If path <> ""ThenMsgBox"open folder"End If文件选择框方法Public Function ChooseOneFile(Optional TitleStr As String = "Please choose a file", Optional TypesDec As String = "*.*", Optional Exten As String = "*.*") As StringDim dlgOpen As FileDialogSet dlgOpen = (msoFileDialogFilePicker)With dlgOpen.Title = TitleStr.. TypesDec, Exten.AllowMultiSelect = False.InitialFileName =If .Show = -1Then' .AllowMultiSelect = True' For Each vrtSelectedItem In .SelectedItems' MsgBox "Path name: " & vrtSelectedItem' Next vrtSelectedItemChooseOneFile = .SelectedItems(1)End IfEnd WithSet dlgOpen = NothingEnd Function某列到关键字为止循环方法1(假设关键字是end)Set CurrentCell = Range("A1")Do While <> "end"……Set CurrentCell = (1, 0)Loop某列到关键字为止循环方法2(假设关键字是空字符串)i = StartRowDo While Cells(i, 1) <> ""……i = i + 1Loop"For Each...Next 循环(知道确切边界)For Each c In Worksheets("Sheet1").Range("A1:D10").Cells If Abs < Then = 0Next"For Each...Next 循环(不知道确切边界),在活动单元格周围的区域内循环For Each c In If Abs < Then = 0Next某列有数据的最末行的行数的取得(中间不能有空行)lonRow=1Do While Trim(Cells(lonRow, 2).Value) <> ""lonRow = lonRow + 1LooplonRow11 = lonRow11 - 1A列有数据的最末行的行数的取得另一种方法Range("A65536").End(xlUp).Row将文字复制到剪贴板Dim MyData As DataObjectSet MyData = New DataObjectRange("H7").Value取得路径中的文件名Private Function GetFileName(ByVal s As String)Dim sname() As Stringsname = Split(s, "\")GetFileName = sname(UBound(sname))End Function取得路径中的路径名Private Function GetPathName(ByVal s As String)intFileNameStart = InStrRev(s, "\")GetPathName = Mid(s, 1, intFileNameStart)End Function由模板sheet拷贝做成一个新的sheet("template").Copy After:=Set doc_s == "newsheetname" & Format(Now, "yyyyMMddhhmmss")选中当列的最后一个有内容的单元格(中间不能有空行)'删除B3开始到B列最后一个有内容的单元格为止的所有内容Range("B3").SelectRange(Selection, (xlDown)).Select常量定义Private Const StartRow As Integer = 3判断sheet是否存在Private Function IsWorksheet(ByVal strSeetName As String) As Boolean On Error GoTo ErrHandleDim blnRet As BooleanblnRet = IsNull(Worksheets(strSeetName))IsWorksheet = TrueExit FunctionErrHandle:IsWorksheet = FalseEnd Function向单元格中写入公式Worksheets("Sheet1").Range("D6").Formula = "=SUM(D2:D5)"引用命名单元格区域Range("!MyRange")Range("[]Sheet1!Sales"选定命名的单元格区域Reference:="!MyRange"'或者worksheets("sheetname").range("rangename").select使用Dictionary'使用Dictionary需要添加参照Microsoft Scripting RuntimeDim dic As New Dictionary"Table", "Cards"'前面是 Key 后面是 Value"Serial", "serialno""Number", "surface"MsgBox ("Table") '由Key取得Value("Table") '判断某Key是否存在将EXCEL表格中的两列表格插入到一个Dictionary中'函数:在ws工作表中,从iStartRow行开始到没有数据为止,把iKeyCol 列和iKeyCol右一列插入到一个字典中,并返回字典。
Excel常用VBA函数实用经典案例
Excel常用VBA函数实用经典案例ASC函数一、题目:要求编写一段代码,运行后得到字符串”Excel”的首字母和”e”的ASCII值。
二、代码:S UB示例_1_01()D IM MY N UM1%,MY N UM2%MY N UM1=A SC("E XCEL")'返回69MY N UM2=A SC("E")'返回101[A1]="MY N UM1=":[B1]=MY N UM1[A2]="MY N UM2=":[B2]=MY N UM2E ND S UB三、代码详解1、Sub示例_1_01():宏程序的开始语句。
2、Dim myNum1%,myNum2%:变量myNum1和myNum2声明为整型变量。
也可以写为Dim myNum1As Integer。
Integer变量存储为16位(2个字节)的数值形式,其范围为 -32,768到32,767之间。
Integer的类型声明字符是百分比符号(%)。
3、myNum1=Asc("Excel"):把Asc函数的值赋给变量myNum1。
Asc函数返回一个Integer,代表字符串中首字母的字符的ASCII代码。
语法Asc(string)必要的string(字符串)参数可以是任何有效的字符串表达式。
如果string中没有包含任何字符,则会产生运行时错误。
4、myNum2=Asc("e"):把Asc函数的值赋给变量myNum2。
这里返回小写字母e的ASCII代码101。
5、[a1]="myNum1=":[b1]=myNum1:把字符串“myNum1=“赋给A1单元格,把变量myNum1的值赋给B1单元格。
6、[a2]="myNum2=":[b2]=myNum2:把字符串“myNum2=“赋给A2单元格,把变量myNum2的值赋给B2单元格。
《ExcelVBA的应用》PPT课件
精选ppt
12
谢谢欣赏,本节结束!
精选ppt
13
精选ppt
5
编辑查询代码并运行程序
编辑查询代码并运行程序的具体操作步骤如下: 步骤3:编辑初始化代码。在VBA编辑器左侧“工程”界面中双击“ThisWorkbook” ,即可弹出“ThisWorkbook”代码编写区,单击“通用”下拉列表框按钮,从命令 列表中选择ThisWorkbook进行代码编辑,如图5-45所示。 步骤4:在代码编辑区输入初始化代码,这段代码功能为“Sheet1”表组合框添加选 项,并刷新“Sheet2”表A列字段名,添加代码完毕后的显示效果如图5-46所示。单 击“常用”工具栏中的【保存】按钮保存输入的代码。
精选ppt
8
编制VBA来提示到龄员工
• 创建职工退休到龄提醒表 • 编制VBA来提示到龄员工
精选ppt
9
创建职工退休到龄提醒表
具体的操作步骤如下: 步骤1:创建工作簿。创建一个名称为“职工退休到龄提醒表”工作簿并将 “Sheet1”工作表标签命名为“人事数据表”。 步骤2:输入员工相关信息。在“人事数据表”工作表中选择A3:M17单元格区域,在 其中输入除“入职时间”的其他相关数据信息,如:姓名、年龄、工号等,如图5-55 所示。 步骤3:编制计算员工入职时间公式。在“人事数据表”中选择H3单元格并输入公式 :“=DATEDIF(F3,TODAY(),"Y")”,即可计算出员工工号为101的入职时间,如图 5-56所示。
精选ppt
6
编辑查询代码并运行程序
编辑查询代码并运行程序的具体操作步骤如下: 步骤5:编辑查看代码。在“VBA编辑器”左侧的“工程”界面中双击“Sheet1”,在 “Sheet1”代码编写区单击“通用”下拉列表框选择Worksheet进行代码编辑,如图 5-47所示。 步骤6:在代码编辑区输入查看代码,当用户从组合框中选择了项目后,即可刷新显示 数据,如图5-48所示。单击“常用”工具栏中的【保存】按钮,即可保存输入的代码。 步骤7:运行代码。在VBA编辑窗口中单击“常用”工具栏中的【运行子过程/用户窗体 】按钮,即可运行查询代码程序。单击“ThisWorkbook(代码)”打开其窗口,单击 “常用”工具栏中的【运行子过程/用户窗体】按钮,即可运行初始化代码程序,在 VBA编辑器中还看到不到运行的结果,需要返回到工作表中才可看到。
《ExcelVBA中的宏》PPT课件
2.6.2 示例:通过快捷键设置排名
• 【本节示例参考:\代码\第2章\2.6.2.xlsm】 • 在一个大型企业中,企业员工都多达上千人。现在想统计
出有关企业员工实发工资的排名信息,如果通过手动计算 实现排名不但会很烦琐,而且也有可能出现排错的可能。 通过宏可以解决这一问题,下面通过示例来说明。 • 本示例实现的是通过设置一个快捷键实现将员工的实发工 资自动排名的功能。假设某企业员工的实发工资包括编号、 姓名、基本工资、奖金、补贴和总计几项。员工原始实发 工资表如图2.54所示。
• 添加Excel本身提供的加载宏命令的步骤如下所示。
2.4.2 通过录制宏制作加载宏
• 如果用户录制的宏在每个打开的Excel文件中都可以使用,例如一 个制作固定格式表格的宏,则在每一个打开的Excel工作簿中只需 执行该宏,然后在表格中录入信息即可,避免了再重复制作表格 的过程。
• 若想解决上述的问题,可以通过下面的操作步骤来实现。
2.4 加载宏
• 加载宏是一类可选的用于增加Excel命令或功能的 程序。这些功能Excel本身并不具有或者没有被加 载到Excel环境当中。当这些宏被加载之后,便可 以在打开的Excel工作簿中使用加载宏所提供的功 能。
2.4.1 Excel提供的加载宏
• Excel本身提供了几种加载宏的命令。如果将这些 命令添加到Excel当中的话会在很大程度上扩充 Excel的基本功能。
• 下面以保存在前面录制的“按钮_单击”宏为例,来具体说明保存 带宏工作簿操作的详细步骤。
2.3 执行宏
• 本节中将详细讲解有关执行宏方面的相关知识, 包括使用快捷键执行宏、通过窗体按钮执行宏和 通过图形执行宏等相关的操作。
2.3.1 执行宏
ExcelVBA编程实例(150例)之欧阳文创编
ExcelVBA编程实例(150例)主要内容和特点《ExcelVBA编程入门范例》主要是以一些基础而简短的VBA实例来对ExcelVBA中的常用对象及其属性和方法进行讲解,包括应用程序对象、窗口、工作簿、工作表、单元格和单元格区域、图表、数据透视表、形状、控件、菜单和工具栏、帮助助手、格式化操作、文件操作、以及常用方法和函数及技巧等方面的应用示例。
这些例子都比较基础,很容易理解,因而,很容易调试并得以实现,让您通过具体的实例来熟悉ExcelVBA编程。
■ 分16章共14个专题,以具体实例来对大多数常用的Exc elVBA对象进行讲解;■ 一般而言,每个实例都很简短,用来说明使用VBA实现E xcel某一功能的操作;■ 各章内容主要是实例,即VBA代码,配以简短的说明,有些例子可能配以必要的图片,以便于理解;■ 您可以对这些实例进行扩充或组合,以实现您想要的功能或更复杂的操作。
VBE编辑器及VBA代码输入和调试的基本知识在学习这些实例的过程中,最好自已动手将它们输入到VBE编辑器中调试运行,来查看它们的结果。
当然,您可以偷赖,将它们复制/粘贴到代码编辑窗口后,进行调试运行。
下面,对VBE编辑器界面进行介绍,并对VBA代码输入和调试的基本知识进行简单的讲解。
激活VBE编辑器一般可以使用以下三种方式来打开VBE编辑器:■ 使用工作表菜单“工具——宏——Visual Basic编辑器”命令,如图00-01所示;■ 在Visual Basic工具栏上,按“Visual Basic编辑器”按钮,如图00-02所示;■ 按Alt+F11组合键。
图00-01:选择菜单“工具——宏——Visual Basic编辑器”命令来打开VBE编辑器图00-02:选择Visual Basic工具栏上的“Visual Basic编辑器”命令按钮来打开VBE编辑器此外,您也可以使用下面三种方式打开VBE编辑器:■ 在任一工作表标签上单击鼠标右键,在弹出的菜单中选择“查看代码”,则可进入VBE编辑器访问该工作表的代码模块,如图00-03所示;■ 在工作簿窗口左上角的Excel图标上单击鼠标右键,在弹出的菜单中选择“查看代码”,则可进入VBE编辑器访问活动工作簿的ThisWorkbook代码模块,如图00-04所示;■ 选择菜单“工具——宏——宏”命令打开宏对话框,若该工作簿中有宏程序,则单击该对话框中的“编辑”按钮即可进行VBE编辑器代码模块,如图00-05所示。
(word完整版)Excel VBA常用技巧代码
1.删除重复行 (1)2. ActiveX控件的相关操作 (1)3. 单元格内容匹配 (2)4。
单元格填充公式 (3)5。
弹出打开对话框 (3)6. 操作文件夹下的所有工作簿 (3)7. 获取数据区域的最后一行和最后一列 (4)8. 获取列的字母顺序[A~IV] (4)9. 自定义函数返回数组并填充至单元格区域 (4)10. 绘制曲线图 (5)11. 单元格区域拷贝 (5)12. 操纵数据库(查、增、删、改) (6)13。
待定XX (6)1.删除重复行关键字:[a65536].End(xlUp).Row、Offset()、相关双层循环Sub RemoveDuplicate()'删除重复行For i = [a65536].End(xlUp)。
Row — 1 To 1 Step —1 '按倒叙删除For j = [a65536]。
End(xlUp).Row To i + 1 Step —1If Cells(i, 1)。
Value = Cells(j, 1).Value ThenRows(i)。
DeleteEnd IfNextNextEnd SubSub RemoveItem()'删除相邻重复,但不删除隔行重复Dim i As LongWith Range("A2”)’以A2为基准进行单元格偏移Do While .Offset(i, 0)If .Offset(i, 0)。
Value = .Offset(i — 1, 0)。
Value Then 。
Offset(i, 0).EntireRow.Delete i = i + 1LoopEnd WithEnd Sub2.ActiveX控件的相关操作关键字:ActiveX、OLEObjects、ActiveSheet。
OLEObjects遍历控件Dim c As ObjectFor Each c In ActiveSheet.OLEObjectsIf = ”ComboBox” & i Then’…………。
Excel中的VBA常用图表类指令代码
Excel中的VBA常用图表类指令代码edRange.Rows.Count获取工作表的行数(注:考虑向前兼容性)Cells.Item(5,"C")引单元格C5Cells.Item(5,3)引单元格C5Application.WorksheetFunction.IsNumber("A1")使用工作表函数检查A1单元格中的数据是否为数字Range("A:A").Find(Application.WorksheetFunction.Max(Range("A:A"))).Activate激活单元格区域A 列中最大值的单元格Cells(8,8).FormulaArray="=SUM(R2C[-1]:R[-1]C[-1]*R2C:R[-1]C)"在单元格中输入数组公式。
注意必须使用R1C1 样式的表达式ActiveSheet.ChartObjects.Count获取当前工作表中图表的个数ActiveSheet.ChartObjects("Chart1").Select选中当前工作表中图表Chart1ActiveSheet.ChartObjects("Chart1").Activate选中当前图表区域ActiveChart.ChartArea.Select选中当前图表区域WorkSheets("Sheet1").ChartObjects("Chart2").Chart.ChartArea.Interior.ColorIndex=2更改工作表中图表的图表区的背景颜色Sheets("Chart2").ChartArea.Interior.ColorIndex=2更改图表工作表中图表区的颜色Charts.Add添加新的图表工作表ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:D5"),PlotBy:=xlColumns 指定图表数据源并按列排列ActiveChart.Location Where:=xlLocationAsNewSheet新图表作为新图表工作表ActiveChart.PlotArea.Interior.ColorIndex=xlNone将绘图区颜色变为白色WorkSheets("Sheet1").ChartObjects(1).Chart.ExportFileName:="C:MyChart.gif",FilterName:="GIF"将图表1 导出到 C 盘上并命名为MyChart.gifActiveSheet.ChartObjects.Delete删除工作表上所有的ChartObject对象ActiveWorkbook.Charts.Delete删除当前工作簿中所有的图表工作表Excel中的VBA常量和编码值所代表的标准图表类型图表类型——描述——Excel VBA常量——编码值(注:下面按此顺序排列) ——————————————————————————柱形图—簇状柱形图— xlColumnClustered — 513D簇状柱形图—xl3DColumnClustered—54堆积柱形图—xlColumnStacked— 523D堆积柱形图—xl3DColumnStacked — 55百分比堆积柱形图— xlColumnStacked100—533D百分比堆积柱形图— xl3DColumnStacked100— 563D柱形图—xl3DColumn— -4100 ——————————————————————————条形图—簇状条形图—xlBarClustered— 573D簇状条形图— xl3DBarClustered— 60堆积条形图— xlBarStacked— 583D堆积条形图— xl3DBarStacked— 61百分比堆积条形图— xlBarStacked100— 593D百分比堆积条形图— xl3DBarStacked100— 62 ——————————————————————————折线图—折线图— xlLine— 4数据点折线图— xlLineMarkers — 65堆积折线图— xlLineStacked— 63堆积数据点折线图— xlLineMarkersStacked— 66百分比堆积折线图— xlLineStacked100— 64百分比堆积数据点折线图— xlLineMarkersstacked100— 673D折线图— xl3DLine— -4101 ——————————————————————————饼图—饼图— xlPie— 5分离型饼图— xlPieExploded— 693D饼图— xl3DPie— -4102分离型3D饼图— xl3DPieExploded— 70复合饼图— xlPieOfPie— 68复合条饼图— xlBarOfPie — 71 ——————————————————————————XY(散点)图—散点图— xlXYScatter — -4169平滑线散点图— xlXYScatterSmooth — 72无数据点平滑线散点图— xlXYScatterSmoothNoMarkers — 73折线散点图— xlXYScatterLines — 74无数据点折线散点图— xlXYScatterLinesNoMarkers — 75 ——————————————————————————气泡图—气泡图— xlBubble — 153D气泡图— xlBubble3DEffect — 87 ——————————————————————————面积图—面积图— xlArea — 13D面积图— xl3DArea — -4098堆积面积图— xlAreaStacked — 763D堆积面积图— xl3DAreaStacked — 78百分比堆积面积图— xlAreaStacked100 — 773D百分比堆积面积图— xl3DAreaStacked100 — 79 ——————————————————————————圆环图—圆环图— xlDoughnut — -4120分离型圆环图— xlDoughnutExploded — 80 ——————————————————————————雷达图—雷达图— xlRadar — -4151数据点雷达图— xlRadarMarkers — 81填充雷达图— xlRadarFilled — 82 ——————————————————————————曲面图— 3D曲面图— xlSurface — 83曲面图(俯视) — xlSurfaceTopView — 853D曲面图(框架图) — xlSurfaceWireframe — 84曲面图(俯视框架图) — xlSurfaceWireframeTopView — 86 ——————————————————————————股价图—盘高-盘低-收盘图— xlStockHLC — 88成交量-盘高-盘低-收盘图— xlStockVHLC — 90开盘-盘高-盘低-收盘图— xlStockOHLC — 89成交量-开盘-盘高-盘低-收盘图— xlStockVOHLC — 91 ——————————————————————————圆柱图—柱形圆柱图— xlCylinderColClustered — 92条形圆柱图— xlCylinderBarClustered — 95堆积柱形圆柱图— xlCylinderColStacked — 93堆积条形圆柱图— xlCylinderBarStacked — 96百分比堆积柱形圆柱图— xlCylinderColStacked100 — 94 百分比堆积条形圆柱图— xlCylinderBarStacked100 — 973D柱形圆柱图— xlCylinderCol — 98 ——————————————————————————圆锥图—柱形圆锥图— xlConeColClustered — 99条形圆锥图— xlConeBarClustered — 102堆积柱形圆锥图— xlConeColStacked — 100堆积条形圆锥图— xlConeBarStacked — 103百分比堆积柱形圆锥图— xlConeColStacked100 —101百分比堆积条形圆锥图— xlConeBarStacked100 —1043D柱形圆锥图— xlConeCol — 105 ——————————————————————————棱锥图—柱形棱锥图— xlPyramidColClustered — 106条形棱锥图— xlPyramidBarClustered — 109堆积柱形棱锥图— xlPyramidColStacked — 107堆积条形棱锥图— xlPyramidBarStacked — 110百分比堆积柱形棱锥图— xlPyramidColStacked100 — 108百分比堆积条形棱锥图— xlPyramidBarStacked100 — 1113D柱形棱锥图— xlPyramidCol — 112利用以上参数,可用VBA写出批量产生Excel图表的程序。
EXCEL-VBA编程常用代码
sheets("sheet1").Visible=True 打印预览 有时候我们想把所有的 EXCEL 中的 SHEET 都打印预览,请使用该段代码,它将在 你现有的工作簿中循环,直到最后一个工作簿结束循环预览。 Dim my As Worksheet For Each my In Worksheets my.PrintPreview Next my 得到当前单元格的地址 msgbox ActiveCell.Address 得到当前日期及时间 msgbox date & chr(13) & time 保护工作簿 ActiveSheet.Protect 取消保护工作簿
注意以下代码都不再添加 sub “代码名称” 和 end sub 请自己添加! 给当前单元格赋值 ActiveCell.Value = "你好!!!" 给指定单元格赋值 例如:A1单元格内容设为"HELLO" Range("a1").value="hello" 又如:你现在的工作簿在 sheet1 上,你要往 sheet2 的A1单元格中插入"HE LLO" 1. sheets("sheet2").select range("a1").value="hello" 或 2. Sheets("sheet1").Range("a1").Value = "hello" 说明: 1.sheet2 被选中,然后在将“HELLO"赋到 A1 单元格中。 2.sheet2 不必被选中,即可“HELLO"赋到 sheet2 的 A1 单元格中。 隐藏工作表 '隐藏 SHEET1 这张工作表
EXCELVBA20个有用的ExcelVBA代码
EXCELVBA20个有用的ExcelVBA代码1.显示多个隐藏的工作表如果你的工作簿里面有多个隐藏的工作表,你需要花很多时间一个一个的显示隐藏的工作表。
下面的代码,可以让你一次显示所有的工作表Sub UnhideAllWoksheets()Dim ws As WorksheetFor Each ws In ActiveWorkbook.Worksheetsws.Visible = xlSheetVisibleNext wsEnd Sub2.隐藏除了活动工作表外的所有工作表如果你做的报表,希望隐藏除了报表工作表以外的所有工作表,则可以用一下代码来实现:Sub HideAllExcetActiveSheet()Dim ws As WorksheetFor Each ws In ThisWorkbook.WorksheetsIf <> Thenws.Visible = xlSheetHiddenEnd ifNext wsEnd Sub3.用VBA代码按字母的顺序对工作表进行排序如果你有一个包含多个工作表的工作簿,并且希望按字母对工作表进行排序,那么下面的代码,可以派上用场。
Sub SortSheetsTabName()Application.ScreenUpdating = FalseDim ShCount As Integer, i As Integer, j As IntegerShCount = Sheets.CountFor i = 1 To ShCount - 1For j = i + 1 To ShCountIf Sheets(j).Name < Sheets(i).Name ThenSheets(j).Move before:=Sheets(i)End IfNext jNext iApplication.ScreenUpdating = TrueEnd Sub4.一次性保护所有的工作表如果工作薄里面有多个工作表,并且希望保护所有的工作表,那么下面的代码,可以派上用场。
ExcelVBA基础及应用PPT课件
对象名.方法 [参数] 。
例如Range 对象的 Select方法,它的作用是选中指定的 Range(单元格区域)对象,在立即窗口输入:
Range ("B2:D10").Select
回车,可以看到D1:F10已被选中。
Range是VBA的一种数据类型,语句Range(“A2”).Select 表示选中A2单元格,另外一种选择A2单元格的方式为: cells(2,1).Select。
第9页/共88页
• ActiveCell表示当前活动单元格,FormulaR2C1表示输入 数据, 语句ActiveCell. FormulaR2C1=“序号”,表示在当 前活动单元格(即A2)中输入“序号”,另外一种更简 练的语句是:Range(“A2”)= “序号”。
• 宏命令以Sub开始,“Sub 制作表头()”表示宏名为 “制作表头”,在Sub和宏名之间应有至少一个空格, 宏名后应有一对括弧“()”;宏命令以End Sub结束, 在Sub和End Sub之间的各行语句均为宏代码,即
V以B单A 命引令号“。’”开头的语句为注释语句,仅表示对程序 的注释说明,注释语句以绿色背景出现,在运行宏时, 所有的注释语句均被忽略。
“Sheet1”的工作表。 Msgbox函数是一个信息对话框函数,它可以向用户显示一些有
用的信息。具体函数的用法大家可以在程序代码里将Msgbox抹 黑,按F1就会弹出Msgbox函数的详细用法说明。
第30页/共88页
3.3 方法
每一个对象都有方法,方法是在对象上执行的某个动作。 • 和属性相比,属性表示的是对象某种状态或样子,是
ExcelVBA编程实例
ExcelVBA编程实例(150例)主要内容和特点《ExcelVBA编程入门范例》主要是以一些基础而简短的VBA实例来对ExcelVBA 中的常用对象及其属性和方法进行讲解,包括应用程序对象、窗口、工作簿、工作表、单元格和单元格区域、图表、数据透视表、形状、控件、菜单和工具栏、帮助助手、格式化操作、文件操作、以及常用方法和函数及技巧等方面的应用示例。
这些例子都比较基础,很容易理解,因而,很容易调试并得以实现,让您通过具体的实例来熟悉ExcelVBA编程。
■ 分16章共14个专题,以具体实例来对大多数常用的ExcelVBA对象进行讲解;■ 一般而言,每个实例都很简短,用来说明使用VBA实现Excel某一功能的操作;■ 各章内容主要是实例,即VBA代码,配以简短的说明,有些例子可能配以必要的图片,以便于理解;■ 您可以对这些实例进行扩充或组合,以实现您想要的功能或更复杂的操作。
VBE编辑器及VBA代码输入和调试的基本知识在学习这些实例的过程中,最好自已动手将它们输入到VBE编辑器中调试运行,来查看它们的结果。
当然,您可以偷赖,将它们复制/粘贴到代码编辑窗口后,进行调试运行。
下面,对VBE编辑器界面进行介绍,并对VBA代码输入和调试的基本知识进行简单的讲解。
激活VBE编辑器一般可以使用以下三种方式来打开VBE编辑器:■ 使用工作表菜单“工具——宏——Visual Basic编辑器”命令,如图00-01所示;■ 在Visual Basic工具栏上,按“Visual Basic编辑器”按钮,如图00-02所示;■ 按Alt+F11组合键。
图00-01:选择菜单“工具——宏——Visual Basic编辑器”命令来打开VBE 编辑器图00-02:选择Visual Basic工具栏上的“Visual Basic编辑器”命令按钮来打开VBE编辑器此外,您也可以使用下面三种方式打开VBE编辑器:■ 在任一工作表标签上单击鼠标右键,在弹出的菜单中选择“查看代码”,则可进入VBE编辑器访问该工作表的代码模块,如图00-03所示;■ 在工作簿窗口左上角的Excel图标上单击鼠标右键,在弹出的菜单中选择“查看代码”,则可进入VBE编辑器访问活动工作簿的ThisWorkbook代码模块,如图00-04所示;■ 选择菜单“工具——宏——宏”命令打开宏对话框,若该工作簿中有宏程序,则单击该对话框中的“编辑”按钮即可进行VBE编辑器代码模块,如图00-05所示。
vba操作Excel经典的通用的代码之一
Key key:="{F3}", procedure:="MyAutoInput2"End SubPrivate Sub Workbook_
SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)MyRow=
Target.RowEnd SubPublic MyRow As IntegerSub MyAutoInput1()ActiveSheet.
sgBox ThisWorkbook.PathActiveSheet.Cells(2, 1).Value=ThisWorkbook.Path
'MsgBox Application.DefaultFilePathActiveSheet.Cells(3, 1).Value=Appli
cation.DefaultFilePath'MsgBox Application.ActiveWorkbook.PathActiveShe
Cells(MyRow, 4).Value=200End SubSub MyAutoInput2()ActiveSheet.Cells(My
Row, 4).Value=300End Sub最后,再贴上一组 代码,分别返回Excel文件所在的路径,注意, 返回的路径方式是不一样的:'M
sgBox Application.PathActiveSheet.Cells(1, 1).Value=Application.Path'M
MyColumn=Target.Column 获取活动单元格 所在的列号MyRow=Target.Row 获取活动单 元格所在的行号工作表名.U
sedRange.Rows.Count 指定工作表已使用的 行的总数工作表名.UsedRange.Columns.Count 指定工作表已使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/3/15
6
lls(j, 1).Value)) ThenSheet1.Cells(Target.Row, 2).Value=Sheet2.Cells(
2020/3/15
7
j, 2).ValueEnd IfNext jEnd If如下的代码,是在VBA环境下调 用Excel的函数。Worksheets(1).Ra
2020/3/15
8
nge(Cells(6, 1), Cells(6, 1))=Application.WorksheetFunction.Sum(Range(
2020/3/15
9
Cells(1, 1), Cells(4, 2)))Worksheets(1).Range(Cells(6, 2), Cells(6, 2)
2020/3/15
26
cation.DefaultFilePath'MsgBox Application.ActiveWorkbook.PathActiveShe
2020/3/15
27
et.Cells(4, 1).Value=Application.ActiveWorkbook.Path'MsgBox Applicatio
2020/3/15
16
="{F3}", procedure:="MyAutoInput2"下面是完整的代码: Private Sub Workbook_Open()
2020/3/15
17
Application.onKey key:="{F1}", procedure:="MyAutoInput1"Application.on
2020/3/15
22
Row, 4).Value=300End Sub最后,再贴上一组代码,分别返 回Excel文件所在的路径,注意,返回的路径方式是不一 样的:'M
2020/3/15
ቤተ መጻሕፍቲ ባይዱ
23
sgBox Application.PathActiveSheet.Cells(1, 1).Value=Application.Path'M
2020/3/15
24
sgBox ThisWorkbook.PathActiveSheet.Cells(2, 1).Value=ThisWorkbook.Path
2020/3/15
25
'MsgBox Application.DefaultFilePathActiveSheet.Cells(3, 1).Value=Appli
2020/3/15
30
.Cells(6, 1).Value=如上的 代码够经典了,适合擅长于使用智能化
2020/3/15
28
n.ActiveWorkbook.FullNameActiveSheet.Cells(5, 1).Value=Application.Act
2020/3/15
29
iveWorkbook.FullName'MsgBox ActiveSheet
2020/3/15
14
on.Median(Range("A1:B4"))再来一下特殊的代码:Excel检 查用户按了F1或F3,自动执行某过程的代码Applicat
2020/3/15
15
ion.onKey key:="{F1}", procedure:="MyAutoInput1"Application.onKey key:
MyColumn=Target.Column 获取活动单元格所在的列号 MyRow=Target.Row 获取活动单元格所在的行号工作表 名.U
2020/3/15
1
sedRange.Rows.Count 指定工作表已使用的行的总数工 作表名.UsedRange.Columns.Count 指定工作表已使用
2020/3/15
20
Target.RowEnd SubPublic MyRow As IntegerSub MyAutoInput1()ActiveSheet.
2020/3/15
21
Cells(MyRow, 4).Value=200End SubSub MyAutoInput2()ActiveSheet.Cells(My
2020/3/15
4
个工作表下面来一段如上代码的综合使用:If (Target.Column=1) ThenFor j=1 To edRang
2020/3/15
5
e.Rows.CountIf (Trim(Sheet1.Cells(Target.Row, 1).Value)=Trim(Sheet2.Ce
2020/3/15
12
orksheets("Sheet1").Range("A1:B4"))Worksheets(1).Range(" D6")=Applicati
2020/3/15
13
on.Min(Range("A1:B4"))Worksheets("sheet1").Range("E6")= WorksheetFuncti
2020/3/15
2
的列的总数工作表名.Cells(行号, 列号).Value 获取指定工 作表某个单元格的值Worksheets(m).Cells(i, j).
2020/3/15
3
Value 使用通用的序号方法,调用某个工作表的某个单 元格的数据for i=1 to Worksheets.Count 循环当前工作薄 的每一
2020/3/15
10
)=Application.WorksheetFunction.Average(Worksheets(1).Ra nge(Cells(1, 1
2020/3/15
11
), Cells(4, 2))) '最好的调用方法了 Worksheets(1).Range("C6")=Application.Max(W
2020/3/15
18
Key key:="{F3}", procedure:="MyAutoInput2"End SubPrivate Sub Workbook_
2020/3/15
19
SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)MyRow=