Excel 2010 VBA 入门
文章平均质量分 75
isual Basic for Application (VBA)是Visual Basic的一种宏语言,是依附于MicrosoftOffice系列软件的自动化语言。
ngbshzhn
数学教师一枚
展开
-
Excel 2010 VBA 入门 144 制作通用工具
题制作一个通用的工作表按列拆分工具步骤1.添加功能区选项卡和按钮步骤1 新建一个启用宏的工作簿。步骤2 自定义功能区,其功能区代码如下:<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon> <tabs> <tab id="tabTool" label="工具箱"> <group id="gpWorks..原创 2021-11-30 15:24:12 · 1333 阅读 · 0 评论 -
Excel 2010 VBA 入门 143 实现功能区控件之间的交互
目录题码切换按钮(toggleButton)控件的getPressed属性切换按钮(toggleButton)控件的onAction属性切换按钮之间的交互条件筛选的自定义过程题 如图所示,该表为某公司产品销售的发货记录。在功能区添加三个切换按钮,可分别选择“显示全部”、“显示已发货”、“显示未发货”。当单击某个按钮时(即根据发货数量进行数据筛选),使该按钮呈按下的状态,而其余按钮呈弹起的状态。客户名称 订单号 产品型号 计划发货日期 ...原创 2021-11-29 09:53:05 · 1254 阅读 · 0 评论 -
Excel 2010 VBA 入门 142 添加自定义功能区列表控件的选项
目录题码dropDown控件添加选项dropDown控件的onAction属性获取dropDown控件选中选项的另一个方法题 如图所示,该表为某公司生产报表。现希望在功能区添加下拉框,可供选择各种不同的型号,当选中某个型号后,在查询表中对该产品按月汇总后显示。日期 型号 生产数量 2012/1/4 Model1 102 2012/1/4 Model2 102 2012/1/5 Model2 104 ...原创 2021-11-26 16:47:46 · 1517 阅读 · 0 评论 -
Excel 2010 VBA 入门 141 动态更改功能区控件属性
目录题码动态属性IRibbonUI对象和Invalidate方法设置IRibbonUI对象Invalidate的实质题 制作一个功能区的按钮为该工作簿制作名为“目录”的报表导航工作表,并且当该导航工作表已经存在时,则按钮显示“更新目录”;反之显示“创建目录”。当单击该按钮时,可以创建或更新目录。码 本例实质上是需要按钮(button)控件的label属性能够根据当前工作簿是否含有“目录”工作表而动态显示不同的内容。因而使用其动态属性getLa...原创 2021-11-25 15:31:39 · 2381 阅读 · 0 评论 -
Excel 2010 VBA 入门 140 在功能区添加按钮并运行VBA程序
目录题码回调(CallBack)IRibbonControl对象题 如图所示,该表为员工档案。为了避免该表的数据被修改,该表已经被保护。如何在功能区添加一个按钮,当单击该按钮后可以将该表的数据导出为普通的工作簿。码 在工作簿中添加一个按钮的回调过程saveCopy,该过程用以将工作表中的数据导出另存为一个单独的工作簿。然后自定义功能区,在自定义选项卡中添加一个按钮,将其onAction属性设置为该回调过程saveCopy。步骤1 自定义功能区...原创 2021-11-24 16:15:29 · 4259 阅读 · 0 评论 -
Excel 2010 VBA 入门 139 创建工作簿级的自定义选项卡
题自定义选项卡,使得该设置仅对某个工作簿有效。码创建自定义选项卡的XML文件,将其添加进Excel工作簿文件中。步骤1 创建一个文件夹,将其命名为“customUI”。步骤2 打开“记事本”程序,在其中输入以下内容:<customUI xmlns="://schemas.microsoft.com/office/2009/07/customi"> <ribbon> <tabs> <tab id="customTab" labe..原创 2021-11-24 15:16:51 · 2231 阅读 · 0 评论 -
Excel 2010 VBA 入门 138 添加选项卡和内置控件
题在功能区中添加一个选项卡,并在选项卡中添加内置控件码使用Excel选项中的【自定义功能区】添加选项卡和内置控件。步骤1 选择“文件”选项卡,单击“选项”按钮,打开“Excel”选项对话框,并选择“自定义功能区”选项,如图所示。步骤2 在“自定义功能区”中单击“新建选项卡”按钮,新建一个选项卡并自动创建组。在左侧“从下列位置选择命令”下拉框中选择“所有命令”,选择下方所需的命令控件,单击“添加”按钮,即可实现控件的添加,如图所示。步骤3 单击“确定”按钮,返回工作表界面...原创 2021-11-15 15:09:55 · 2279 阅读 · 0 评论 -
Excel 2010 VBA 入门 137 动态创建窗体
目录题码VBComponents集合VBComponent对象题 如图所示,该表为某公司工资表与员工档案表,当查看工资表时,希望能够在双击员工姓名时,在员工档案表中查询该员工的基本信息,并临时创建一个窗体显示该员工信息。月份 工作地区 部门 姓名 基本工资 奖金 补贴 出勤 缺勤(天) 休息 加班小时 加班金额 扣其它费用 应发工资 1900/1/8 行政部 行政部 ...原创 2021-11-12 16:51:48 · 3562 阅读 · 0 评论 -
Excel 2010 VBA 入门 136 动态地创建控件以显示查询结果
题 利用窗体显示查询结果可以使工作表数据不被破坏,然而查询结果的数量往往是不确定的。如图所示,该表为某公司商品发货记录。创建一个动态增加控件的窗体以显示一个交叉查询结果,显示每个客户不同型号商品的发货合计数。日期 客户名称 商品型号 数量 2012/1/27 客户5 商品2 1298 2012/12/16 客户1 商品3 4343 2012/3/29 客户2 商品1 6054 2012/7/15 ...原创 2021-11-12 10:58:39 · 2879 阅读 · 0 评论 -
Excel 2010 VBA 入门 135 利用窗体制作登录界面
题使用窗体制作登录界面,实现当打开Excel时,隐藏工作簿,当登录完成后显示工作簿。码 登录机制是将用户输入的用户名和密码与正确的用户名和密码进行比较,若相等,则表示登录成功,反之登录失败。本例的实现需要创建一个登录窗口允许用户输入用户名和密码,当单击“登录”按钮后立即进行校验。在工作簿的Open事件中添加显示窗体的代码,并将Excel程序对象的Visible属性设置为False,以隐藏Excel程序,当窗体关闭时,再将该属性设置为True。步骤1 将Sheet2作为存储用户名...原创 2021-11-10 16:31:25 · 8952 阅读 · 5 评论 -
Excel 2010 VBA 入门 134 创建具有窗体交互的函数
目录题码创建具有窗体交互的函数的步骤ListBox控件的Selected属性题在许多程序中,经常需要调用一个窗体,让用户选取列表中的若干个值,然后根据这些选中的值进行下一步操作。可以编写一个函数以便其他程序调用,该函数允许传递自定义的列表,并返回从用户列表中选择的值。码 首先声明一个全局变量用以记录用户选择的值。然后创建一个带有列表框和确定按钮的窗体,为按钮添加Click事件,将列表框中选中的项目作为赋值给全局变量。接着编写一个函数,可以接收数组作为窗体列表的选...原创 2021-11-09 16:16:52 · 1234 阅读 · 0 评论 -
Excel 2010 VBA 入门 132 利用复合框制作工作簿/表导航
题使用复合框制作一个工作表导航,以便实现工作簿及工作表的切换。码 创建一个窗体,使用两个复合框制作二级下拉列表,其中一个作为当前打开的所有工作簿的列表,另一个作为所选中的工作簿中所有工作表的列表。步骤1 按组合键【Alt+F11】打开VBE。步骤2 选择菜单“插入”→“用户窗体”,并在窗体中添加两个Label控件以及两个ComboBox控件,然后将Label控件的Caption属性分别设置为“工作簿”和“工作表”。步骤3 在“工程资源管理器”中用鼠标右键单击之前...原创 2021-11-05 09:22:30 · 2709 阅读 · 0 评论 -
Excel 2010 VBA 入门 131 移动不同列表框中的项目
目录题码ListBox的AddItem方法和RemoveItem方法ListBox控件的MuItiSeIect属性ListBox控件的Value属性ListBox控件的ListIndex属性VBA实现ListBox项目的移动题 如图所示,该表为某公司员工的工资表。提取其中的部分列组成新表,并能够通过列表框从已有列中选择所需的列。员工编号 姓名 部门 应发合计 基本工资 加班工资 补贴 奖金 病事假扣款 养老保..原创 2021-11-04 16:20:43 · 1320 阅读 · 1 评论 -
Excel 2010 VBA 入门 130 利用窗体创建实时筛选浮动工具栏
目录题码DefauIt和CanceI按钮提高单元格隐藏的速度自制浮动工具栏动态显示与隐藏窗体题 如图所示,该表为某单位员工档案。现希望制作一个包含有文本框的浮动工具栏,当在文本框中输入字符并按【Enter】键后,对该表进行模糊查找,将该表中不含有该字符的所有记录隐藏。序号 姓名 科室 级别 身份 职称 受聘专业 性别 出生年月 年龄 参工时间 工作年限 入院时间 入院年限 职...原创 2021-11-04 15:03:03 · 1850 阅读 · 0 评论 -
Excel 2010 VBA 入门 129 利用窗体向工作表中录入数据
题如图所示,该表为某公司订单记录表,其中所有的列都是必填的,订单编号为自动生成的序列号。如何建立窗体,并通过窗体向该表内添加订单。序号 姓名 科室 级别 身份 职称 受聘专业 性别 出生年月 年龄 参工时间 工作年限 入院时间 入院年限 职务 等级 身份证号 党员团员 1 张201101 后勤科 中级 干部 主治医师 医生 男 1954-01-04原创 2021-11-02 15:51:03 · 15373 阅读 · 0 评论 -
Excel 2010 VBA 入门 128 在窗体中插入控件
目录步骤控件工具栏控件的顺序控件的组合步骤步骤1 在工作表中插入一个按钮,将其命名为CommandButton1,Caption属性为“显示窗体”。步骤2 按组合键【Alt+F11】打开VBE。步骤3 选择菜单“插入”→“用户窗体”。步骤4 在“工程资源管理器”中双击之前插入的窗体,在“控件”工具箱中将CommandButton控件拖入窗体中,并调整大小和位置,如所图所示。步骤5 在“工程资源管理器”中右键单击之前插入的窗体,选择“查看代码”,如图所示,然后在...原创 2021-11-01 15:23:44 · 7792 阅读 · 0 评论 -
Excel 2010 VBA 入门 127 创建并显示窗体
目录窗体对象及其属性窗体对象的显示与关闭窗体对象的装载与显示窗体对象的卸载与隐藏窗体的显示模式窗体是Excel VBA中提供的一种窗口对象。它属于工作簿对象(Workbook)中VB工程对象(VBProject)下的VB组件集合(VBComponents)中的一个组件。使用窗体制作专业化的软件界面时,Excel VBA允许在窗体中添加ActiveX控件以实现更强大的功能。步骤1 在工作表中插入一个ActiveX按钮,将其命名为CommandButton1,Captio...原创 2021-11-01 15:02:55 · 9777 阅读 · 0 评论 -
Excel 2010 VBA 入门 126 批量设置控件属性
题 对于多个在Excel工作表中的ActiveX控件,可以批量设置其属性?如图,该表为某公司使用的技能培训出题考试系统,所有的题目为单项选择题,并已经在工作表中插入了相应的控件(4个OptionButton控件以及两个CommandButton控件)。当单击“上一题”和“下一题”按钮时,使程序更改OptionButton的Caption属性以显示题目对应的选项。码 通过题号查找下一题或上一题,读取题号和题目至单元格中。使用CallByName函数结合 循环获取每个OptionBu...原创 2021-11-01 14:46:07 · 1832 阅读 · 0 评论 -
Excel 2010 VBA 入门 125 创建动态智能匹配的下拉列表
目录题码TextBox控件和ListBox控件ListBox控件的ListFiIIRange属性和List属性ListBox控件的多列显示ListBox控件的值模糊查询下拉列表控件的选用ListBox和ComboBox控件题 在Excel中,可以使用数据有效性创建下拉列表。当列表项目较多时,数据有效性所创建的下拉列表就很难快速并准确地定位。如图所示,该表为某公司客户一览,现准备建立查询表,希望在查询表的客户列中建立下拉列表,并允许输入关键字后显示匹配该关键字..原创 2021-10-28 15:31:18 · 3450 阅读 · 1 评论 -
Excel 2010 VBA 入门 124 日期选择控件
目录码DTPicker控件DTPicker控件的时间和日期的切换DTPicker控件的日期输入方式DTPicker控件的Value属性与Change事件使用DTPicker控件实现日期选择并赋值给单元格注册DTPicker控件在Excel中,经常需要输入日期。为保证输入正确,可以通过一个日历控件进行输入。 在工作表中添加DTPicker控件,并隐藏。在工作表中添加工作表SelectionChange事件,在事件中判断Target参数所指的单元格,当为特定单...原创 2021-10-27 15:39:20 · 8172 阅读 · 0 评论 -
Excel 2010 VBA 入门 123 创建ActiveX控件的事件
目录ActiveX控件的事件ActiveX控件的常用事件ActiveX控件的事件 ActiveX控件提供了丰富的事件。当需要添加ActiveX控件事件时,需要在VBE中向ActiveX控件所在的工作表添加代码。当在工作表中插入ActiveX控件之后,即可在工作表代码窗口左上角的对象下拉框中找到该ActiveX对象。当通过该下拉框选中该对象后,即可在代码窗口生成一个事件代码(一般为Click事件)。此时在对象下拉框右侧的程序下拉框中可以找到该对象的所有事件。当单击某个事件时,即可在代码窗..原创 2021-08-16 16:15:09 · 857 阅读 · 0 评论 -
Excel 2010 VBA 入门 122 更改ActiveX控件的属性
ActiveX控件的属性 在编辑模式下,可以使用属性窗口更改ActiveX控件的属性。该属性窗口实际上与VBE中属性窗口的使用方法一致。ActiveX控件具有非常丰富的类别和属性,其中常用的通用属性 属 性 说 明 Caption/Text 用于标识或说明该对象的说明性文本,即显示的文本:一般—个控件仅具有Caption和Text属性中的一个,而不会同时拥有 Name ...原创 2021-08-16 15:01:56 · 1032 阅读 · 0 评论 -
Excel 2010 VBA 入门 121 ActiveX控件
目录ActiveX控件Excel中常用的ActiveX控件编辑ActiveX控件通过代码访问ActiveX控件工作表中窗体(表单)控件和ActiveX控件的区别ActiveX控件 ActiveX控件是自动化组件对象,该对象可通过嵌入的方式添加至其他应用程序中,因而可以在Excel中添加ActiveX控件至工作表中。 一般地,ActiveX控件只要在系统中注册后,就可供Excel使用。使用方法为:在“开发工具”选项卡中“控件”组的“插入”按钮中单击需要插入的控件,然后...原创 2021-08-16 14:35:29 · 2920 阅读 · 0 评论 -
Excel 2010 VBA 入门 120 显示打开文件对话框
目录码1Application.GetOpenFilename方法码2FileDialog对象FileDialog对象的常用属性使用FileDialog对象的属性Filters添加筛选FileDialog对象的Show方法和Execute方法遍历通过FileDialog对象选择的文件Application. GetSaveAsFilename方法Application. Dialog对象码1 使用Application.GetOpenFilename方...原创 2021-08-13 16:49:42 · 2529 阅读 · 0 评论 -
Excel 2010 VBA 入门 119 创建对话框的帮助文档
目录例 码 步骤1 步骤2 步骤3 步骤4 步骤5 步骤6步骤7 步骤8 步骤9 步骤10 步骤11 步骤12步骤13步骤14 步骤15CHM文件及HTML Help Workshop在Excel VBA中调用CHM文件创建VBA项目的帮助系统使用语句打开帮助文件例 InputBox方法和Msgbox函数...原创 2021-08-11 16:33:31 · 1036 阅读 · 0 评论 -
Excel 2010 VBA 入门 118 反复提示对话框直到数据合法
目录例码1IsNumeric函数码2Application. InputBox方法例 使用对话框要求用户输入信息时,在有些时候需要限制用户输入的内容以进行下一步的处理。如本例要求用户输入一个数字,并查找出大于该数字的所有数据。使用VBA实现要求用户输入一个数字,若输入非数字则反复要求其输入。码1 使用Do---Loop循环不断调用InputBox方法,并利用IsNumeric函数判断其返回值是否为数字,当为数字时则跳出循环。Option Explic...原创 2021-08-10 15:47:44 · 337 阅读 · 1 评论 -
Excel 2010 VBA 入门 117 具备输入功能的对话框
目录例码VBA.InputBox函数InputBox函数的返回值例 在Excel VBA中,经常给用户提供输入信息的功能用以获取信息,并执行相应的操作。例如,在一个对话框供用户输入信息,然后执行相应的查询。码 使用InputBox函数提供一个可以输入信息的弹出对话框提示,并使用一个变量接受用户的输入值。Option ExplicitSub 输入对话框() Dim sInput As String sInput = InputBox("输入...原创 2021-08-10 15:23:24 · 974 阅读 · 0 评论 -
Excel 2010 VBA 入门 116 有交互功能的提示对话框
例 编写一个过程,当用户更改单元格的值时立即弹出对话框提示,并且用户可以选择是否保存更改。码 使用MsgBox函数提供一个可以交互的弹出对话框提示,并根据其返回值进行相应的操作。 编写“sheet1”响应事件Option ExplicitPrivate Sub Worksheet_Change(ByVal Target As Range) Dim msgResult As VbMsgBoxResult '弹出“是否”对话框,并将用户选择赋值给...原创 2021-08-10 15:05:22 · 1512 阅读 · 0 评论 -
Excel 2010 VBA 入门 115 创建信息提示对话框
目录码MsgBox函数各个参数与提示对话框的联系MsgBox函数buttons参数MsgBox函数buttons参数的组合Application. Cursor属性Application. SatusBar属性使用MsgBox函数弹出提示窗口以提示程序运行结果。码Option ExplicitFunction 弹出对话框() MsgBox _ prompt:="警告信息", _ Buttons:=vbCritic...原创 2021-08-09 16:19:11 · 1807 阅读 · 0 评论 -
Excel 2010 VBA 入门 114 设置自定义函数的说明
使用Application.MacroOptions方法为自定义函数添加说明,以方便用户在使用时获取相应的帮助信息码Option Explicit'数据源,条件,结果Function MyArea(radius As Double) As Double MyArea = WorksheetFunction.Pi * radius ^ 2End Function'添加说明Sub 添加说明() Application.MacroOptions _ m...原创 2021-08-09 14:43:20 · 3311 阅读 · 0 评论 -
Excel 2010 VBA 入门 113 用自定义函数返回满足条件的所有记录
目录例码以数组作为返回值的自定义函数Application. Caller属性例 在使用公式进行按条件查找时,经常需要返回满足条件的所有记录。然而Excel的大部分查找函数只能返回满足条件的第一个记录。可以自定义一个函数进行条件查找,并返回满足条件的所有记录。例如编写一个结构类似于SUMIF函数的自定义查找函数,使其第1参数为条件区域,第2参数为条件,第3参数为数据区域。使该函数返回参数1中满足参数2作为条件的数据在参数3中对应的区域值。序号 姓名 性别 ...原创 2021-07-22 10:35:23 · 1477 阅读 · 1 评论 -
Excel 2010 VBA 入门 112 汇总关闭的工作薄函数
例 工作表函数SUMIF是条件汇总中经常使用的函数,但是该函数对关闭的工作簿却无能为力。编写一个函数,完成SUMIF函数精确条件汇总的功能,实现对关闭的工作簿按条件汇总。码 模拟SUMIF函数编写一个自定义函数MySumIF。在该自定义函数中,第1个参数和第3个参数作为条件区域和求和数据区域,采用变体型参数。当参数传递后,将参数中的所有元素赋值到自定义的一维数组中。然后利用循环对条件数组进行判断,并合计满足条件时相应的求和数据数组中的数据。Option ExplicitFu...原创 2021-07-21 10:38:22 · 385 阅读 · 0 评论 -
Excel 2010 VBA 入门 111 条件查询的函数
目录例码使参数适用于数组和单元格区域TypeName函数和VarType函数查找指定位置的数据返回指定错误值的函数例 在Excel中经常使用Vlookup函数进行精确查找,但当多个数据符合查找条件时,则只能返回其从上而下的第1个满足条件的数据。自定义一个函数MyVlookup,使其参照Vlookup函数的使用方法进行精确查找,其第4个参数则变更为需要返回第几个满足条件的数据。码 参照Vlookup创建自定义函数,使用循环对参数中所输入的数据的第1列进行查找...原创 2021-07-20 11:07:55 · 1237 阅读 · 0 评论 -
Excel 2010 VBA 入门 110 获取最小值的自定义函数
例 在VBA编程过程中,经常会使用工作表函数Min来确立某组数中的最小值。但是工作表函数Min无法适用于二维以上的数组,也无法适用于某一维的大小超过65536的数组。码 编写含有两个参数的自定义函数,第1个参数为变体类型,第2个参数为ParamArray关键字所指定的不确定数量的参数数组。假设第1个参数所代表的数值为最小值,然后遍历第2个参数所表示的数组中所有的元素,包括作为元素的数组中的元素,当找到比最小值小的数字,则选取该数为最小值。...原创 2021-07-20 10:10:54 · 2181 阅读 · 0 评论 -
Excel 2010 VBA 入门 109 获取某列最后非空单元格行号
目录例码易失性函数例 在Excel中,经常需要得知某列最后一个非空单元格的行号,以确定数据的数量。编写自定义函数以实时计算某单元格所在的列最后非空单元格的行号。员工编号 姓名 部门 0114 俞卫广 总经办 0374 高波 总经办 0209 曲波 人事部 0352 周书敬 人事部 0370 姚胜 财务部 0265 毛传阳 财务部 0016 袁志刚 财务部..原创 2021-07-19 10:38:13 · 2443 阅读 · 1 评论 -
Excel 2010 VBA 入门 108 个人所得税计算函数
目录码声明自定义函数自定义函数的返回值自定义函数和过程的区别与联系对于经常使用的某个计算,最好的方法是编写一个自定义函数供随时调用。自定义一个含有参数的函数(Function),计算个人所得税并将其设为返回值,即可在工作表中使用该函数。码Option ExplicitFunction getTax(Income As Double) As Double Dim taxRate As Double Dim deduct As Double ...原创 2021-07-16 10:31:44 · 895 阅读 · 0 评论 -
Excel 2010 VBA 入门 107 数组排序
编写一个含有参数的过程,其参数为一个数组,并且按引用传递参数。然后在该过程内编写一个数组排序的程序,使得数组按照升序排序。码原创 2021-07-16 09:50:17 · 761 阅读 · 0 评论 -
Excel 2010 VBA 入门 106 带参数的过程
示例 在VBA编程中,经常需要反复实现某种相同的数据处理,而其数据处理的触发机制却是多样化的,可能通过事件,也可能通过单击按钮。如图所示,该表为某公司2009年和2010年的工资明细,制作了查询表,插入了两个按钮,通过单击这两个按钮分别查询2009年与201 0年按部门汇总的工资表。...原创 2021-07-15 09:21:09 · 1221 阅读 · 1 评论 -
Excel 2010 VBA 入门 105 将工作表数据批量导出为图片
目录示例 代码Copy. Cut和Paste方法图表对象(Chart)的Export方法利用PPT导出图片示例 为防止数据的更改或者盗用,将所选的数据区域导出为图片进行展示。代码 在Excel中,仅为图表(Chart)提供了一个导出图片的方法,因而使用该方法可以将指定的图片导出。创建一个空白的图表容器对象( ChartObject),将所需要导出的对象使用CopyPicture方法复制,依次执行图表对象子对象Chart的Paste(粘贴)和Export(...原创 2021-07-13 10:38:25 · 2224 阅读 · 0 评论 -
Excel 2010 VBA 入门 104 利用VBA生成图表
目录示例代码ChartObjects集合和ChartObject对象数据系列(Series)对象添加图表的其他方法1.通过添加Chart对象添加图表2.通过Shapes集合的AddChart方法添加图表示例月份 产品A销售额 产品B销售额 1月 1247 628 2月 519 936 3月 1175 792 4月 1262 802 5月 760 595 6月 634原创 2021-07-12 09:58:31 · 7410 阅读 · 0 评论