还剩13页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
Excel宏编程简明教程一)、宏学习首先需要明确的是,本文不可能教会您关于宏的所有内容您需要学会利用〃录制宏的方法来学习宏点击Excel〃工具〃下拉菜单中〃宏〃下quot;录制新宏〃,此后可象平时一样进行有关操作,待完成后停止录制然后再点击〃工具〃下拉菜单中宏〃下宏〃的〃编辑选项即可打开刚才所录制的宏的Visual Basic源程序,并且可以在此时的〃帮助〃下拉菜单中获得有关的编程帮助对录制宏进行修改不仅可以学习宏的使用,还能大大简化宏的编写二)、基本概念为了学习Excel中的宏,我们需要先了解以下一些基本概念.工作簿WorkbooksWorkbook、ActiveWorkbook、Th isWorkbook1Workbooks集合包含Excel中所有当前打开的Excel工作簿,亦即所有打开的Excel文件;Workbook对应Workbooks中的成员,即其中的Excel文件;ActiveWorkbook代表当前处于活动状态的工作簿,即当前显示的Excel文件;ThisWorkbook代表其中有Visual Basic代码正在运行的工作簿在具体使用中可用Workbooks(index)来引用Workbook对象,其中index为工作簿名称或编号;如Workbooks
(1)、Workbooks(年度报表xls)・而编号按照创建或打开工作簿的顺序来确定,第一个打开的工作簿编号为1,第二个打开的工作簿为2……o.工作表Worksheets WorksheetsActiveSheet2Worksheets集合包含工作簿中所有的工作表,即一个Excel文件中的所有数据表页;而Worksheet则代表其中的一个工作表;ActiveSheet代表当前处于的活动状态工作表,即当前显示的一个工作表可用Worksheets(index)来引用Worksheet对象,其中index为工作表名称或索引号;如Worksheets
(1)、Worksheets(第一季度数据”)工作表索引号表明该工作表在工作表标签中的位置第一个(最左边的)工作表的索引号为1,最后一个(最右边的)为Worksheets.Count需要注意的是在使用过程中Excel会自动重排工作表索引号,保持按照其在工作表标签中的从左至右排列,工作表的索引号递增因此,由于可能进行的工作表添加或删除,工作表索引号不一定始终保持不变.图表:、3Chart ChartsChartObject ChartObjectsActiveChart代表工作簿中的图表该图表既可为嵌入式图表(包含在中),也可为Chart ChartObject一个分开的(单独的)图表工作表代表指定工作簿或活动工作簿中所有图表工作表的集合,但不包括嵌入式在工作表Charts或对话框编辑表中的图表使用()可引用单个图表,其中是该图表Charts indexChart index工作表的索引号或名称;如()(销售图表”)图表工作表的索引号表示图表Charts lCharts工作表在工作簿的工作表标签栏上的位置⑴是工作簿中第一个(最左边的)图表工作Charts表;()为最后一个(最右边的)图表工作表Charts Charts.Count代表工作表中的嵌入式图表,其作用是作为对象的容器利用ChartObject ChartChartObject可以控制工作表上嵌入式图表的外观和尺寸Object Caption=”runme因为所有的对象也是集合的成员,所以也可用该集合设置若干控件的属性例OLE Shapes如要对齐第一张工作表上所有控件的左边框ForEachsInWorksheets1ShapesIfs Type=msoOLEControlObjectThens Left=10Next请注意,当在控件所在工作表的类模块之外使用控件的名称时,必须用工作表的名称限定该控件的名称在工作表上控件的事件处理过程中,关键字所指向的是工作表,而ActiveX Me非控件在中利用创建多级选单Excel VBA是我们常用的报表处理软件之一,对于大多数人来说只是使用它进行打印报表,没有注Excel意其他功能,其实利用内嵌.语言完全可以快速开发出自己企业的应用系统来,而且Excel.VB应用系统界面与其它专业编程语言相当相似下面笔者简单通过一个实例说明如何利用创VBA建多级选单首先,我们对Excel中两个重要的内置函数auto_open..auto_close作一简单说明auto_open.在打开工作簿时系统将自动执行该函数,因此我们可以在该函数中调用自己应用程序的选单函数以及其它需要初始化设置的函数及宏语句;auto_close在关闭工作簿时系统将自动执行该函数所以我们需要在该函数中放置删除用户自定义选单语句,否则只有退出才能恢复的系统选单Excel EXCEL在以下语句中,我们定义了选单设置函用于设置多级选单,其他有关说明见程.OpenMyMenu,序内注释,详细代码如下自定义多级选单函数Su.OpenMyMenu..忽略错误MenuBarsnMyMenun.Delet.7删除自定义选单MenuBars.Ad.nMyMenuH.7自定义选单项Sheetsnsheetln.Select金融MenuBarsMyMenu.Menus.Ad.Caption:=增加第一个选单项“金融”以下三句为在“金融”选单下增加“银行法、货币政策和条例”三项选单项“金融银行法银行法”MenuBarsMyMenu”.Menus.Menuitems.Ad.Caption:=.OnAction:=金融”货币政策货币政MenuBarsMyMenu.Menus.Menuitems.Ad.Caption:=”.OnAction:=策”金融条例.条例”MenuBarsMyMenu.Menus.MenuItems.Ad.Caption:=OnAction:=以下为创建如图所示的多级选单经济.建立选单项“经济”以下三句为在“经济”MenuBarsMyMenu.Menus.Ad.Caption:=选单下增加“农业、工业和第三产业”三项选单项“经济MenuBars”MyMentT.Menus农业”.农业”经济.MenuItems.Ad.Caption:=OnAction:=”MenuBarsMyMeniT.Menus工业.工业”经济.MenuItems.Ad.Caption:=OnAction:=MenuBarsMyMenu.Menus廿第三产业”.MenuItems.AddMen.Caption:以下三句为在“第三产业”选单下增加“概况、范畴”二项选单项和“饮食服务业”子选单MenuBarsnMyMenun.Menus经济.MenuItems第三产业n.MenuItems.Ad.Caption:=n概况概况””.OnAction:=MenuBarsnMyMenun.Menusn经济,MenuItems第三产业n.Menuitems.Ad.Caption:=n范畴【廿范畴”OnAction:MenuBars(MyMenu).Menus(经济)MenuItems(第三产业).MenuItems.AddMen.Caption:=饮食服务业”以下二句为在“饮食服务业”选单下增加“酒店、酒店二项选单项12”MenuBars(nMyMenun).Menus(H经济M).MenuItems(n第三产业n).MenuItems(H饮食月艮务业)酒店酒店.MenuItems.Ad.Caption:=l”.OnAction:=1MenuBars(nMyMenun).Menus(n经济M).MenuItems(n第三产业n).MenuItems(n饮食服务业*f).Menuitems.Ad.Caption:=HV®jE
2.OnAction:=酒店2MenuBars(nMyMenun).Activat.z激活自定义选单En.Sub(系统自动打开运行宏Su.auto_open.调用用户选单函数OpenMyMen.,En.Sub(系统自动关闭运行宏Su.auto_close/.忽略错误
0.Erro.Resum.NexMenuBars(”MyMenu).Delet.删除自定义选.En.Sub读者可以在自己的工作簿选单“工具”中的“宏”下,创建以上三个函数并将以上函数语句拷贝到其中即可运行、.用(编程)保护文档66VBA Excel()是应用程序中功能非常强大的编程语言,为了规范不同的用户对应VBA ExcelExcel用程序的访问能力,需要对文档及有关的数据进行有效的保护.这里根据自己及同行们的Excel体会,从以下二个方面介绍用编程法实现对文档的保护VBA Excel对工作簿的保护利用中对象的方法实现对工作簿的保护.下面就对关的参量L VBA Workbook SaveAsSaveAs.作一介绍Filename该字符串表示要保存的文件名.可包含完整路径.如果不指定路径,Microsof.Exce.将文件保存到当前文件夹,可选,文件的保存格式FileFormatPasswor.为一个区分大小写的字符串(不超过15个字符.,用于指定文件的保护密码该字符串表示文件的写保护密码.如果文件保存时带有密码,但打开文件时不WriteResPassword.输入密码,则该文件以只读模式打开如果为则在打开文件时显示一条信息,提示该文件以只读模式打ReadOnlyRecommende.True开下例就是在应用程序中添加一工作簿,将工作簿按常规文件格式存为经济评Excel“C:\pj\obj\价文件,并给该文件指定保护密码以及写保护密码.xls”“12”“23”.保护工作簿()SuNew Workboo..Workbooks.addNewWorkbook.SaveA.FileName尸C.\pj\obj\经济评价.xls.FileFormat.二XlNormal,Password~n12n,WriteResPassword:=23En.sub.利用中对象的方法对工作簿的结构和窗口进行保护,对象2VBA WorkbookProtect Workbook的方法带有以下三个参量Protect.为加在工作表或工作簿上区分大小写的密码字符串.如果省略本参数,不用密码就可Password以取消对该工作簿的保护否则,取消对该工作表或工作簿的保护时必须提供该密码如果忘记了密码,就无法取消对该工作表或工作簿的保护最好在安全,地方保存一份密码及其对应文档名的列表,若为则保护工作簿结构工作簿中工作表的相对位置默认值为.Structure TrueFalse Window若为则保护工作簿窗口True下例就是对一名为“经济评价的工作簿实现“结构”和“窗口”保护.xls”.保护工作簿SuWorkbook.rf经济评价..Protec.Password.=1234”.Structure.=True,Windows:=TrueEn.sub对象的方法用于取消对工作簿的保护方法只有一个参量,就是Workbook UnprotectUnprotect保护工作表时所用的口令.对工作簿进行隐藏保护,可使他人无法看到其对应的窗口操作方法如下3在中使用对象下面的对象的属性对工作簿进行隐藏和取消隐VBAWorkbookWindows Visible藏,属性的值可取和两种Visible“True“False”下面程序代码完成对工作簿的隐藏“book.xls”.隐藏工作簿SuWorkbooks,bookn.ActivateActiveWindow.VisibL.FalseEn.sub或,Su.隐藏工作簿Workbooksnbookn.Windows
1.Visible=False En.sub对工作表的保护对工作表实现口令保护利用调用对象的方法对工作表进行保护,
1.VBA WorksheetProtect带有以下参量Protect.用于保护工作表的口令Passwor,若为则对工作表中的对象进行保护,缺省值为Drawingobject True,Drawingobjects True,若为则对单元格内容进行保护,缺省值为Content True,True下面程序代码完成对工作表”基础数据表”的保护.保护工作表SuWorksheets基础数据表.Protec.Password:=n1234nEn.sub对工作表实现隐藏保护,使他人无法看到工作表
2.利用设置对象的属性来隐藏工作表;属性的值为以下三个值中VBA WorksheetVisible Visible的一个工作表为显示状态Tru.工作表为隐藏状态Fais.工作表为隐藏状态,且用户不能通过“取消隐臧”对话框将其改为显示状态当XlVerHidde.的值为时,只能利用将其重新设置为Visible XlVerHiddenVBA True.隐藏工作表Su基础数据表二Worksheets.Visible FalseEn.sub、求:将所选区域中的数值全部转化为“万元”的最简代码.67求:将所选区域中的数值全部转化为“万元”的最简代码.或能完成此功能的最便捷的命令操作.写了一个,抛砖引玉Su.convtApplication.EnableEvent..False.yesorn..MsgBoxf确实将区域所有数值转换为“万元”?n.vbYesN..vbQuestio..vbDefaultButtonl.Lyesorn..vbYe.Then请输入小数位数:1:.de..Application.InputBox.Default:=O.Type:=l.Lde..H.Then.GoT.
1.En.If/ce.XRoundCcel.Valu..
10000.
2...ce..Roundcel.Valu..1OOOO.dec.En.If.Next.ElseLyesorn..vbN.Then.Exi.Sub.En.IfEn.Sub以下当为最简代码吧.Su.Macro
2.Selection.NumberFormatLoca..n#n,.nn#,nEn.Sub、在开发环境中,点击工具一一附加控件,出现如下窗口68VBA在可选控件中选择再点击确定,这时,你会发现在你的工具箱中增microsof.orogressba.control,加了进度条工具,如图下面说说进度条的用法属性Max设置进度条控件的最大值.Min.设置进度条控件的最小值Value设置进度条控件对象的当前值.进度条的式样,即一格一格的进度条或是没有间隔的进度条.Scrolling例子Privat.Su.UserForm_ActivateFo....t.
5000.设置进度条控件的最大值.ProgressBarLMa..500进度条控件对象的当前值.ProgressBarLValu..I.nextEn.Sub在程序中加入进度条的办法是将最大值,.当前值放入循ProgressBar
1.Max=ProgressBar
1.Valu.环中去、是一个优秀的电子表格软件,如果你编的程序需要以报表的形式显示最终结果,它69Excel会是个不错的选择你可以通过控制显示数据表格如果你不愿意深入了解这VB ExcelExcel些琐碎的细节,也不是没有权宜之计你可以打开中的工具f宏f录制新宏,然后进行手Excel工操作,结束后把所录的宏代码贴进你的程序就行这样得到的程序一般都能正常运行,VB但其中的宏代码往往不够简洁,效率和可读性都不高.编程碰到的第一个问题是表头有时表头的形式比较复杂,需要横向或纵向合并单元.Excel格请放心,只要没有斜杠,都能应付得了.Excel,例如合并这个单元格,你录制的宏代码会是这样.A2〜A54RangenA2:A5n.SelectWit.Selection.HorizontalAlignmen..xlCenter.Vertical AligniTien..xlBottom.WrapTex..False.Orientatio..O.Addlnden..False.ShrinkToFi..False.MergeCell..FalseEn.WithSelection.Merge.而自己编程只要一.就可以解决问题.Range.“A2:A
5.mergecells=Tru.表头形式定了,再就是表头的内容如果单元格中的文本长度超过了列宽,往往只能显示部分内容,行尾那一格的内容则会“越境”进入右边那个空白单元格,很不美观这个问题可以通过在程序中设置列宽加以解决..设置第列列宽为缺省列宽为,Columns
14.columnwidth=l
14128.
38..如果你不愿意劳神去逐列估计实际所需的列宽,干脆来一..Columns ua:iv.autofi.到i列自动调整列..让随机应变吧.Excel.但也许你不喜欢这种方法,认为表头撑大了列宽,弄得浏览一张小表格还得向右滚动,太不方便了要是能保持默认列宽,让文本自动换行就好了没问题,包你满意.Excel.让第三行各单元格中的文本自动换..Rows
3.WrapText=Tru.不过你最好再加一上加仄监心.加丁让表头自动向上对齐,这样比较符合0\¥
53..\^
111100.习惯..你还可以给表头打上底色,让你的读者不至于看了打哈欠..Rows⑵.Interio..ColorInde…设置第2行底色为蓝..再给表格的标题上色,这样更醒目一点..Rows
1.Font.ColorIndex=..表头完成后该填数据了,一个一个地填实在是太.,如果你的数据是存放在一个二维数组中,那问题就简单多了.Di.Data3,
4.Value=Data.这样可以一次填入一个表的所有数据,够快了吧!不过提醒一句,对象大小最好与数Range组匹配,小了无法显示所有数据,大了则会在空白单元格只填入表示没有取得数据“N/A”.如果需要在结果中显示多个同样规格的数据表,想在对象中加入循环变量,这也好Range办.Di.cellll,cell2Di.Data3,4Fo..=.t.
2.value=DataNex.I.表格填完了,现在该打表格线了,以下几条语句可以满足你的要求:Wit.Worksheets Sheet1n.Rangecell1,cell
2.borders.LineStyle=xlContinuous.weight=xlThinEn.With代表指定的图表工作表、对话框编辑表或工作表上所有嵌入式图表的集合可ChartObjects由引用单个其中为嵌入式图表的编号或名称如ChartObjectsindex ChartObject,indexWorksheetsnSheet1n.ChartObjects1Worksheetssheetl.ChartObjectschaill分另Ll对应工作表中的第一个嵌入式图表、以及名为“的嵌入式图表“Sheetl”Chart-可以引用活动状态下的图表,不论该图表是图表工作表,或嵌入式图表而对ActiveChart于图表工作表为活动工作表时,还可以通过属性引用之ActiveSheet.单元格4Cells ActiveCelKRange Areas代表单个单元格,其中为行号,为列号如可以用Cellsrow,column rowcolumn Cellsl,l来引用“、单元格代表活动工作表的活动单元格,或指定工作CeHs10,4Al“D10”ActiveCell表的活动单元格代表工作表中的某一单元格、某一行、某一列、某一选定区域该选定区域可包含一Range个或若干连续单元格区域或者某一三维区域可用来引用单元格或单元格区域,其中可为单元格号、单元格号范围、单Rangearg arg元格区域名称如Range A
5、RangeMAl:H8H RangenCriteriano虽然可用RangeHAln返回单元格但用更方便,因为此时可用变量指定行和列Al,Cells可将Range与Cells结合起来使用,如RangeCellsl』,Cells10/0代表单元格区域nAl:J10n;而返回单元格区域中的一部分,其中是返回的expression.Cellsrow,column expressionRange表达式,row和column为相对于该区域的左上角偏移量如由RangeHC5:C10Cells1』引用单元格C5为选定区域内的连续单元格块的集合,其成员是对象而其中的每个对Areas RangeRange象代表选定区域内与其它部分相分离的一个连续单元格块某些操作不能在选定区域内的多个单元格块上同时执行;必须在选定区域内的单元格块数上循环,对每个单独的单Areas.Count元格块分别执行该操作此时,可用从集合中返回单个对象,其中为Areasindex Rangeindex单元格块编号;如⑴Areas行与列、
5.Rows ColumnsRow Column、分别代表活动工作表、单元格区域范围、指定工作表中的所有行数、Rows ColumnsRange列数对于一个多选单元格区域范围的、只返回该范围中第一个区域的Range Rows Columns,行数、列数例如,如果对象有两个区域和返回而不Range areasA1:B2C3:D4,Rows.Count2是4可通过行号、列号来引用相应的行与列;如、⑷分别对Rows ColumnsRows3Columns应第三行、歹D J利用、可以获得区域中第一块的第一行行号、第一列列号,所得值均以十进制数RowsColumn表示
三、处理单元格,直接赋值与引用1将变量、常量值直接赋给单元格、或将单元格的值直接赋给变量、常量,这是在中Excel最简单的单元格赋值及引用方法如下例将工作表单元格的值赋给变量并SheeTAl IntegerL将的值赋给当前工作表中的单元格1+1B1Dim IAs IntegerI=WorksheetsnSheet1n.Cells1,1选定单元格,使其成为当前单元格Cellsl,
2.Select Bl「以为当前单元格赋值ActiveCell=I+1+
1.用公式赋值6在宏的使用中,可能会更多地用公式来给单元格赋值如下例将相对于活动单元格左侧第歹!、向上第行至向上第行的单元格数值之和赋给活动单元格以本行、本列为第行、4J62列0ActiveCell.Formula=n=AVERAGER[-6]C[-4]:R[-2]C[-4]n,引用其它工作表中的单元格7当赋值公式中需要引用其它工作表中的单元格时,在被引用的单元格前加上”工作表名!”即可如以下即在赋值中引用了“工作表中的至单元格Sheet-A1A4RangeMEl0n.Formula=H=SUMSheetl!RlCl:R4C1H但需注意的是当被引用的工作表名中含有某些可能引起公式歧义的字符时,需要用单引号将工作表名括起来如WorksheetsnSheetr,.ActiveCell.Formula=,,=MaxTl-l剖面,!D3:D5”.引用其它工作簿中的单元格8在被引用单元格所在工作表名前加上”[工作簿名即可引用其它工作簿中的单元格如FActiveCell.Formula=n=MAX[Bookl.xls]Sheet3!RlC:RC
[4]n同样需注意的是当被引用的工作簿名中含有某些可能引起公式歧义的字符时,需要用中括号”『及单引号将工作簿名括起来如Cells1,
2.Formula=,=MIN,[1995-2000总结.xls]1995-1996年!$A$l:$A$6n.避免循环引用9在上述公式赋值过程中,应避免在公式中引用被赋值的单元格,防止循环引用错误,添加批注10可按如下方法格给单元格添加批注批注文本Dim AsString批注文本=”批注示例”,准备批注文本添加批注ActiveCelLAddComment=临时,写入批注文本ActiveCell.Comment.Text Text:隐藏批注ActiveCell.Comment.Visible=False、添加、删除、复制、剪切、粘贴单元格7RangeHD10H.lnsert Shift:=xlToRight在D10单元格处添加一新单元格,原D10格右移RangeMC2u.Insert Shift:=xlDown在C2单元格处添加一新单元格,原C2格下移在第行前添加一空白行,原第行下移Rows
2.EntireRow.Insert22Columns⑶.EntireColumn.Insert在C列前添加一空白列,原C列右移ColumnsHA:DM.DeleteShift:=xlToLeft删除A列至D歹U,其右侧列左移Rowsn3:5n.Delete Shift:=xlUp删除第3行至第5行,其下方行上移RangeHB2u.EntireRow.Delete删除第2行Range,C4H.EntireColumn.Delete删除C列复制至单元格区域Range”B10:C
13.CopyB10C13剪切单元格Cellsl,
2.Cut B1RangeHD10H.Select自单元格起粘贴剪贴板中的内容
四、图表.工作表图表ActiveSheet.PasteD101以下为一添加工作表图表的实例在工作表之后添力口新图表工作表Charts.Add after:=WorksheetsSheetl Sheetl,图表类型为平滑线散点图ActiveChart.ChartType=xlXYScatterSmooth XY结点坐标人@邛©ActiveChart.SetSourceData5111\:©:=$11©©1521:869,PlotBy:=_图表数据来源于“结点坐标”工作表的至单元格,且按列绘图xlColumns A1B69ActiveChart.Location Where:=xlLocationAsNewSheetWith ActiveChart.HasTitle=True二”节点坐标“图表标题“节点坐标”.AxesxlCategory,xlPrimary.HasTitle=True轴标题.AxesxlCategory,xlPrimary.AxisTitle.Characters.Text=x”x.AxesxlValue,xlPrimary.HasTitle=True轴标题.AxesxlValue,xlPrimary.AxisTitle.Characters.Text=y yEnd WithWith ActiveChart.AxesxlCategory,显示轴主网格线,默认情况下为显示.HasMajorGridlines=True x.HasMinorGridlines二显示轴次网格线,默认情况下为不显示True xEnd WithWith ActiveChart.AxesxlValue标出轴主网格值,默认情况下为标注.HasMajorGridlines=True x取消轴次网格值标注,默认情况下为不标注.HasMinorGridlines=False xEndWithActiveChart.Legend.Position=xlRight,图例显示在图表右侧.嵌入式图表2嵌入式图表仅在添加方式及引用格式上与工作表图表有所不同,而对图表的设置基本类似详见下例嵌入表,在当前工作表坐标处添加宽Set=ActiveSheet.ChartObjects.Add0,0,200,3000,0200,高的嵌入式图表300嵌入表图表类型为簇状柱形图.Chart.ChartType=xlColumnClustered嵌入表.Chart.SetSourceData Source:=Sheets
1.RangeA2:B2r,PlotBy:=xlRows设置图表数据来源嵌入表With Chart无图表标题.HasTitle=False无轴标题.AxesxlCategory,xlPrimary.HasTitle=False x无轴标题.AxesxlValue,xlPrimary.HasTitle=False yEndWith
五、工作表,添加1在第工作表前添加新工作表Sheets.Add before:=Sheetsl”1在最后工作表后添力「新工作表Sheets.Add afteR=SheetsSheets.Count.移动2ActiveSheet.Movebefore:=Sheets21将当前工作表移动至第2工作表之前.命名3工作表名门将当前工作表命名为”工作表名”ActiveSheet.Name=删除4可以用以下语句删除当前工作表ActiveSheet.Delete但在删除前会自动弹出提示框,需在用户确认后方可执行删除为避免这一干扰,可Excel以先用以下语句关闭的警告提示ExcelApplication.DisplayAlerts=False在删除完成后,再重新打开的警告提示ExcelApplication.Display Alerts=True六)、工作簿的宏对工作簿的操作主要为保存Excel存盘文件名Dim AsString保存当前工作簿ActiveWorkbook.Save存盘文件名廿工作表名”存盘文件名,当前工作簿另存为”工作表名ActiveWorkbook.SaveAs Filename:^.xls”在另存时,若指定的存盘文件名不包含路径,则保存在该工作簿的打开目录下而若此存盘文件已存在,也可用关闭警告提示的方法以免其自动弹出提示框Excel、用过的人都应该知道如何声明变量,在中声明变量和中是完全一样的!64VB VBAVB使用语句DimDim aas integer声明A为整形变量Dim a声明为变体变量A声明为字符串变量Dim aas stringA,声明为货币变量声明变量可以是、Dim a,b,c ascurrency A,b,c ByteBoolean IntegerLong(当前不支持)、、(只限变长字符串)、Currency SingleDouble DecimalDate StringString(定长字符串)、用户定义类型或对象类型*length ObjectVariant强制声明变量Option Explicit说明该语句必在任何过程之前出现在模块中声明常数,用来代替文字值Const常数的默认状态是PrivateoConst My=456声明常数Public二Public Const MyString HELP”声明常数Private IntegerPrivateConst MylntAs Integer=5’在同一行里声明多个常数ConstMyStr=Hello,MyDouble AsDouble=
3.4567在中,有一个十分好的功能,他就是把鼠标放置在一个有效数据单元格中,执行EXCEL97该段代码,你就可以将连在一起的一片数据全部选中只要将该段代码加入到你的模块中Sub My_SelectEnd sub删除当前单元格中数据的前后空格sub my_trimTrimActiveCelL Value使单元格位移end subsub my_offset当前单元格向左移动一格ActiveCen.OffsetQ l.Select当前单元格向右移动一格ActiveCelLOffset0,-l.SelecfActiveCelLOffsetl,
0.Select,当前单元格向下移动一格当前单元格向上移动一格ActiveCell.Offset-l,
0.Selectend sub如果上述程序产生错误那是因为单元格不能移动,为了解除上述错误,我们可以往sub my_offset之下力口——段代码on errorresume next注意以下代码都不再添加“代码名称”和请自己添加!给当前单元格赋值sub endsubActiveCell.Value=你好!!!n给特定单元格加入一段代码例如在A1单元格中插入”HELLO”Rangenal,.value=nhellon又如你现在的工作簿在上,你要往的单元格中插入”sheetl sheet2A1H EL L0”
1.sheetsnsheet2n.select rangenal.value=hellon或
2.Sheetsnsheetl n.RangeHaln.Value=hello”说明被打开,然后在将放入至单元格中Lsheet2“HELLO”U Al不被打开,将放入至单元格中隐藏工作表
2.sheet2“HELLO”A1,隐藏SHEET!这张工作表sheetsnsheetlH.Visible=False显示这张工作表SHEET1sheetsnsheetl n.Visible=True有时候我们想把所有的中的都打印预览,请使用该段代码,它将在你现有的工EXCEL SHEET作簿中循环,直到最后一个工作簿结束循环预览Dim myAs WorksheetForEach myIn Worksheetsmy.PrintPreviewNext my得到当前单元格的地址得到当前日期及时间msgbox ActiveCell.Address msgboxdatechr13保护工作簿time取消保护工作簿给当前工作簿改名为ActiveSheet.Protect ActiveSheet.Unprotect“liu”ActiveSheet.Name=nliun打开一个应用程序AppActivate ShellHC:\WINDOWS\CALC.EXEn增加一个工作簿Worksheets.Add删除当前工作簿打开一个文件activesheet.deleteWorkbooks.Open FileName:=nC:\My Documents\Book
2.xlsH关闭当前工作簿当前单元格定为左对齐ActiveWindow.Close当前单元格定为中心对齐Selection.HorizontalAlignment=xlLeft当前单元格定为右对齐Selection.Horizontal Alignment=xlCenter当前单元格为百分号风格Selection.HorizontalAlignment=xlRight当前单元格字体为粗体当前单元格字体为Selection.Style=Percent Selection.Font.Bold=True斜体当前单元格字体为宋体号字二“宋Selection.Font.Italic=True20With Selection.Font.Name体”.Size=20EndWith语句With对象With.描述EndWith让你的机器发出响声BEEP清除单元格中所有文字、批注、格式、所有的东西!ActiveCelLClear测试选择状态的单元格的行数测试选择状态的单元格的列数测MsgBox Selection.Rows.Count MsgBoxSelection.Columns.Count试选择状态的单元格的地址让所有的错误不再发生Selection.Address ONERROR RESUME产生错误时让错误转到另一个地方NEXTon eiTorgoto1code1:code删除一个文件kill nc:\l.txf定制自己的状态栏现在时刻:Application.StatusBar=Time恢复自己的状态栏Application.StatusBar=false在运行期执行一个宏Application.Run macro:=ntextn滚动窗口到al的位置ActiveWindow.ScrollRow=1定制系统日期ActiveWindow.ScrollColumn=1Dim MyDate,MyDayMyDate=#12/12/69#二MyDay DayMyDate今天的年限Dim MyDate,My YearMyDate=DateMy Year=YearMyDateMsgBox MyYear产生一个输入框>inputboxvInputBox Enternumber ofmonths toadd得到一个文件名Dim kkAs Stringkk=Application.GetOpenFilenameHEXCEL*.XLS,*.XLS,Title:=”提示请打开一个EXCEL文件:“msgbox kk打开显示比例对话框zoom激活字体对话框Application.DialogsxlDialogZoom.ShowApplication.DialogsxlDialogActiveCellFont.Show打开另存对话框Dim kkAs Stringkk=Application.GetSaveAsFilenameHexcel*.xls,*.xls”Workbooks.Open kk此段代码寻找字符串中特定字符的位置,需要建立一个窗体,并在窗体中,放入TEXTBOX和个文本框及按钮1,TEXTBOX2TEXTBOX33COMMANDBUTTON1Private SubCommandButtonl_Click a=TextBoxl.Text b=TextBox
2.Textaa=Lena二i1Dim YYAs StringIfb=HH Then Exit SubDoIfInStri,a,b,vbTextCompare=0ThenExitDo kk=InStri,a,b,vbTextCompareYY=YYCStrkk”/”i=kk+1Loop Whileaa=i TextBox
3.Text=YY EndSub控件在中的运用ActiveX Excel97在工作表或图表上可使用控件,根据我使用的体会,在工作上处理控件时,Excel97ActiveX必须注意和了解如下事项一用工作簿文件格式保存Excel
5.0/95工作簿时,将选择控件信息当用户通过双击鼠标来编辑内嵌在其它应用程序Excel97ActiveX文档中的工作簿时,该工作簿上的控件将不会正常工作如果用户是通过用右键单击Excel97工作簿,然后选中快捷菜单上的“打开”命令来编辑工作簿的话,工作簿上的控件就能正常工作了二当控件处于激活状态时,将禁用某些方法和属性例ActiveX MicrosoftExcelVisualBasic如,当某一控件激活时,就不能使用方法,故下述按钮单击事件处理过程中的代码将失败Sort因为用户单击按钮后,该按钮就处于激活状态Privates ubCommandButton1ClickRange al:alO/,SortKey1:=Range,f al,r EndSub解决办法是通过选激活工作表上其它元素的方法来绕过这种问题例如,可用下列代码对单元格区域排序Privates ubCommandButton1ClickRange alActivateRange al:alO,/SortKey1:=Range,f al,f CommandButton1ActivateEnd Sub三在中,用集合中的对象代表控件如MicrosoftExcel OLEObjectsOLEObject ActiveX果要用编程的方式向工作表添加控件,可用集合的方法例如向第ActiveX OLEObjectsAdd一张工作表添加命令按钮Worksheetsl OLEObjectsAddff FormsCommandButton1,_Left~l0,Top:=l0,Height:=20,Width:=100因为控件也可用集合中的对象代表,所以也可用该集合中ActiveX OLEObjectsOLEObject的对象来设置控件的属性例如要设置控件的“左边位置”属性CommandBottonl WorksheetslOLEObjectsCommandButton1z,Left=10那些不属于对象属性的控件属性,可通过由属性返回的实际控件对象来OLEObject Object设置例如要设置控件的标题“CommandButton1”Worksheets⑴OLEObjects CommandButton1z,。
个人认证
优秀文档
获得点赞 0