注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

双寒斋主人

欢迎朋友来访留言!

 
 
 

日志

 
 
关于我

王洪利(1978年9月26日-),男,汉族,本科学历, 一级教师,中共党员,山东冠县人,1999年毕业后一直从事外语教学与研究。英语学科带头人、骨干教师。多次获得优质课获得者、教学能手等荣誉称号。此后继续学习深造。多次参与、参加骨干教师培训、教科研讨、英语教学论坛等工作,,成绩显著。

网易考拉推荐

EXCEL基本操作技巧荟萃(2)  

2013-04-24 13:43:15|  分类: 电脑科技 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

EndSub68、在VBA开发环境中,点击工具――附加控件,出现如下窗口:在可选控件中选择microsoftorogressbarcontrol,再点击确定,这时,你会发现在你的工具箱中增加了进度条工具,如图:下面说说进度条的用法:属性:Max:设置进度条控件的最大值Min:设置进度条控件的最小值Value:设置进度条控件对象的当前值Scrolling:进度条的式样,即一格一格的进度条或是没有间隔的进度条。例子:PrivateSubUserForm_Activate()Fori=1to5000ProgressBar1.Max=5000‘设置进度条控件的最大值ProgressBar1.Value=I‘进度条控件对象的当前值nextEndSub在程序中加入进度条的办法是将ProgressBar1.Max=最大值,ProgressBar1.Value=当前值放入循环中去。69、Excel是一个优秀的电子表格软件,如果你编的程序需要以报表的形式显示最终结果,它会是个不错的选择。你可以通过VB控制Excel显示数据表格。如果你不愿意深入了解Excel这些琐碎的细节,也不是没有权宜之计:你可以打开Excel中的工具→宏→录制新宏,然后进行手工操作,结束后把所录的宏代码贴进你的VB程序就行。这样得到的程序一般都能正常运行,但其中的宏代码往往不够简洁,效率和可读性都不高。Excel编程碰到的第一个问题是表头。有时表头的形式比较复杂,需要横向或纵向合并单元格。请放心,只要没有斜杠,Excel都能应付得了。例如合并A2~A5这4个单元格,你录制的宏代码会是这样:Range("A2:A5").SelectWithSelection.HorizontalAlignment=xlCenter.VerticalAlignment=xlBottom.WrapText=False.Orientation=0.AddIndent=False.ShrinkToFit=False.MergeCells=FalseEndWithSelection.Merge而自己编程只要一句Range.(“A2:A5”).mergecells=True就可以解决问题。表头形式定了,再就是表头的内容。如果单元格中的文本长度超过了列宽,往往只能显示部分内容,行尾那一格的内容则会“越境”进入右边那个空白单元格,很不美观。这个问题可以通过在程序中设置列宽加以解决。Columns(14).columnwidth=12‘设置第14列列宽为12(缺省列宽为8.38)如果你不愿意劳神去逐列估计实际所需的列宽,干脆来一行Columns(“a:i”).autofit‘a到i列自动调整列宽

让Excel随机应变吧。但也许你不喜欢这种方法,认为表头撑大了列宽,弄得浏览一张小表格还得向右滚动,太不方便了。要是能保持默认列宽,让文本自动换行就好了。没问题,Excel包你满意。Rows(3).WrapText=True‘让第三行各单元格中的文本自动换行不过你最好再加一句Rows(3).VerticalAlignment=xlTop让表头自动向上对齐,这样比较符合习惯。你还可以给表头打上底色,让你的读者不至于看了打哈欠。Rows(2).Interior.ColorIndex=5设置第2行底色为蓝色再给表格的标题上色,这样更醒目一点。Rows(1).Font.ColorIndex=4表头完成后该填数据了,一个一个地填实在是太?,如果你的数据是存放在一个二维数组中,那问题就简单多了。DimData(3,4)…………‘数据处理Range(“a2:d4”).Value=Data这样可以一次填入一个表的所有数据,够快了吧!不过提醒一句,Range对象大小最好与数组匹配,小了无法显示所有数据,大了则会在空白单元格只填入“N/A”表示没有取得数据。如果需要在结果中显示多个同样规格的数据表,想在Range对象中加入循环变量,这也好办。Dimcell11,cell2DimData(3,4)…………ForI=1to40…………‘数据处理Setcell1=Worksheets("Sheet1").Cells(5*I-4,1)Setcell2=Worksheets("Sheet1").Cells(5*I-2,4)Worksheets("Sheet1").Range(cell1,cell2).value=DataNextI表格填完了,现在该打表格线了,以下几条语句可以满足你的要求:WithWorksheets("Sheet1").Range(cell1,cell2).borders.LineStyle=xlContinuous.weight=xlThinEndWith70、《计算机实用软件》2001-2002第一学期试卷(2)一、填空题(每空1分,共20分)1.在Excel的系统默认状态下,某个工作表的标签呈白色显示,表示其为。在工作表中被粗线框住的的格子称为。2.在Excel工作表中可以输入两类数据它们是和3.工作表由行和列组成4.输入Excel公式应以或者开头,然后再输入具体的计算公式5.在Excel中,系统默认状态下,输入文字的对齐方式是,输入数字的对齐方式是6.在VB5的标准控件中控件适用于在一组按钮中显示多个选项,但用户只能而且必须选择其中一项。控件适用于放置用户只能看到但不能修改的少量文本。7.在VB中,要改变Text1文本框内显示的信息时,应当在其窗口中,

将属性进行重新设置。8.VB5表达(40Mod7)\2的值是2x2的VB5表达式为9.如下程序实现在当前窗口中显示一个消息框,消息框中显示有“是(Y)”和“否(N)”两个按钮,试将该程序填写完整,使用户点击“是(Y)”按钮后能显示出数字1,点击“否(N)”按钮后能显示出数字2PrivateSubForm_Click()Msg=’你想要继续吗?”Style=vbYesNoResponse=msgbox(msg,)IfResponsevbYesPrint“1”ElseEndifEndSub二、单选题(每题3分,共30分)1.Excel主要用于()领域。.A.美术设计、装璜B.数据分析、财务管理C工业设计、机械制造D.多媒体制作2.对话框窗口中的“确定”按钮的作用是()A.确定输入的信息B.确定各选项并开始执行C.关闭对话框不做任何事D.退出对话框3.在个人计算机上,通常Excel是在()系统环境下运行的。A.office97B.MS-DOSC.WindowsD.UNIX4、Sheet1是Excel中的一个默认()A.工作薄B.单元格C.工作表D.页5、在Excel中,如果输入分数,则需在数值闪加上()A.0与空格B.空格与0C.空格D.06、在Excel中,公式“SUM+($D2:$C$7)”中的$C$7属于()引用。A.绝对B.相对C.列相对行绝对的混合D.行相对列绝对的混合7、在Excel工作表中,系统默认状态下,日期和时间数据会自动()对齐。A.靠左B.靠右C.居中D.靠上8、下述()不是数据清单应具有的特征。A.一个数据清单独占一个工作表B.数据清单中避免对单元格进行格式化C.其它信息不要放在数据清单的区域内D.数据清单中避免出现空行或空列9、下列VB5控件中()可以自动设置滚动条。A.文本框B.图片框C.框架D.复选框10、若想在窗体显示一句提示信息,下列()控件最适宜实现A.框架B.标签C.单选钮D.列表框11、下述哪个是VB5合法变量名?()A.ThenB.IfC.%h121D.Then_112、若想要建立一个学生管理的输入界面,其中要很要求选择学生的性别和选择选修课情况(共有5门课,供任选),应如何在窗体利用单选按钮和复选框来实现A.将5门课程用一组5个复选框来表示,将性别用一组两个复选框来表示B.将5门课程用一组5个单选框来表示,将性别用一组两个复选框来表示C.将5门课程用一组5个复选框来表示,将性别用一组两个单选框来表示

D.将5门课程用一组5个单选框来表示,将性别用一组两个单选框来表示13、假设在当前VB5窗体有一个个文本框Test3,并有Text3_keyPress过程如下(其中变量S1的初始值为0)PrivateSubText3_keyPress(keyAsciiAsInteger)StaticS1IfkeyAscii=13Then‘13是回车符的ASCII码)S1=S1+1Form1.PrintS1IfText3.Text=”11”ThenMsgBox“ItisOK!”Text3.Enabled+FalseEndElseIfS1=3ThenMsgBox“Sorry,invalidpassword!”EndElseMsgBox“Keyinpasswordagain!”Text3.text=””EndIfEndIfEndIfEndSub当程序运行时用户要在文本框中输入11,回车后窗体和屏幕上各会显示:()A.窗体显示“1”,屏幕上弹出一个消息框,框内显示出“Sorry,invalidpassword!”B.窗体显示“1”,屏幕上弹出一个消息框,框内显示出“Keyinpasswordagain!”C.窗体显示“1”,屏幕上弹出一个消息框,框内显示出“ItisOK!”D.窗体显示“3”,屏幕上弹出一个消息框,框内显示出“Sorry,invalidpassword!”三、判断题(每题2分,共30分)1、剪贴板中只能保存最后一次剪切或复制的内容。()2、要关闭Excel的文档窗口,可以用Alt+F4快捷键。()3、Excel97启动后自动打开一个名book1的工作表。()4、在Excel中,一个工作表可以包含多个工作薄。()5、在Excel97中,如果在某个单元格输入的公式中使用的是绝对地址,则复制该单元公式到另一单元时,Excel会对后一单元的公式作相应的调整。()6、在Excel中进行数据分类汇总,既可以通过执行“数据”菜单中的“分类汇总”命令执行,也可以使用Excel提供的数据透视表功能实现。前者适合依据多个字段进行分类汇总,后者适合依据一个字段进行分类汇总。()7、在Excel中,当工作表的数据发生变化时,相应图表中的数据序列也会随之变化,反之亦然()8、使用Excel默认的填充序列功能,可以自动填充出“第一课。。。。第十课”的序列。()9、在VB5的标准控件中复选框控件适用于在一组按钮中显示多个选项,但用户只能而且必须选择其中一项。()10、在VB中,可能有许多事件过程不会被执行。这是因为事件过程对应的事件没有发生。()11、在VB中,变体型变量是一种没有数据类型的变量。()

12、在VB中,Integer类型的类型声明符为“!”。()13、在VB中,局部变量只在定义它的过程内有效。()14、在VB5的过程中用Dim声明局部变量是动态变量,其值在过程执行完后仍保留。用Static声明局部变量是静态变量,其值在程序执行完后会消失。()15、在VB中,属性窗体和窗体属性中一回事。()四、多选题(提示:在下述题前有*标记的题选择是有次序的,每小题2分,共20分)1、“关闭计算机的正确步骤为”()A.选择“关闭系统项”B.在弹出的对话框选择“关闭计算机”并单击“确定”按钮C.单击“开始”菜单D.关闭所有已打开的窗口2、下述输入数据中哪些是正确的Excel97的-6左2分之一?()A.–61/2B.(61/2)C.–61/2D.(61/2)3、在Excel97当前工作表中,假设C5到F5单元格中已有数据型数据,求出C5到F5的总值的公式可以是()A.Sum(c5,f5)B.=Sum(c5:f5)C.=c5+d5+e5+f5D.+Sum(c5:f5)4、下列()是Excel97的应用范围。A.制作普通表格B.关联数据以及图表应用C.数据模拟运算D.数据库的基本操作5、如果要使A1成为活动单元格,可以()。A.单击A1单元格B.按Home键C.按Ctrl+Home键D.在编辑栏的“名称”框内输入A1然后回车6、下述哪些数据不是Excel97中的合法的日期格式的数据。()A.1989年12月31号B.2001/1/11C.04-11-89D.1989.12.317、下述哪些是VB中合法的注释语句?()A.“这是一个注释”B.‘这是一个注释C.Rem这是一个注释D.这是一个注释8、*在VB中将窗体的标题设置成“评估展示”的步骤为();A.将Caption的值改为“评估展示”B.将当前窗体存盘C.将当前窗体成为焦点D.打开属性窗口9、*向窗体添加控件的步骤为();A.单击工具箱中所需的控件B.移动鼠标到窗体中适当位置C.按下鼠标向另一对角拖曳直到满意释放鼠标D.使窗体成为焦点

71、1.文件菜单栏(Excel自带的)文件就叫Commandbars("File"),你可以在打开命令后加个菜单,类似的,编辑就是Commandbars("Edit"),视图就是Commandbars("View"),这些不会因语言版本不一样而不同,全部是一样的。2.快捷菜单栏好像那些打印啊、打开文件啊、居中对齐啊那些呢,叫Commandbars("Standard"),那些字体大小啊,颜色啊,就叫("Formatting")。3.右键Excel的右键也是可以更改的,名叫:Commandbars("Cell")4.自定义菜单类似于数据透视表的那些浮动的窗体,不用名字,用Commandbars.add就可以追加了,最简单了。如果不能运行,记得加个Application.在Commandbars的前面。72、由于公司合同较多,每次缴印花税时,计算每份印花税所需要的各面额印花的张数是一件比较繁琐的事。如:这份合同需要缴纳23元的印花税则需要买两张10元、一张2元、一张1元面额的印花。幸好有

Excel这个财会人员的得力工具,我编写了一段宏代码来自动帮我计算各面额印花的张数,既快捷又方便。想到还有很多同行要做这项工作,所以写下来与大家共享。具体操作如下:新建一个Excel文件存为stampduty.xls,进入宏编辑器(Alt+F11)在ThisWorkbook中加入以下代码:'印花税各面额印花张数计算程序BY-RAYDENG'用途:已知印花税额,计算各面额印花张数'使用方法:做好工具条后,只要选择要计算的原始数据,点击"印花税面额计算"工具条即可.'(请不要选择全列,否则无效的计算太多.)Substamp_duty()StaticflagcalAsInteger'计算标志,首次计算时清空计算结果页,否则在结果页追加计算结果StaticrowbegainAsInteger'计算结果页上可用行号,计算结果追加时从这里开始DimfilenameAsString'打开的需要计算数据的文件名Dimmoneytype(7)AsSingle'定义面额DimmoneyAsSingleDimbillnoAsInteger'票额张数filename=ActiveWorkbook.Name'记录当前打开的文件名Iffilename=VBAProject.ThisWorkbook.NameThen'不要在自身这个文件中操作MsgBox"请选择其它文件中的数据!",vbInformation+vbOKOnlyExitSubEndIfApplication.ScreenUpdating=False'将屏幕更新关闭,可加快宏的运行速度billno=0'计数清0moneytype(0)=100'印花税面额为0.5-100,以0.5为舍入标准moneytype(1)=50moneytype(2)=10moneytype(3)=5moneytype(4)=2moneytype(5)=1moneytype(6)=0.5VBAProject.ThisWorkbook.Sheets(1).Activate'打开结果页Ifflagcal=0Then'如果为第一次计算,则清空结果页Cells.SelectSelection.ClearContentsRange("A1").SelectEndIfActiveSheet.Cells(1,1)="OriginDATA"'先写上表头Fori=0To6ActiveSheet.Cells(1,i+2)=moneytype(i)NextiWorkbooks(filename).Activate'转到要计算的原始数据数据文件rowno=ActiveWindow.RangeSelection.Rows.Count'所选区域有几行rowstart=ActiveWindow.RangeSelection.Row'起始行colstart=ActiveWindow.RangeSelection.Column'起始列j=rowbegain'结果页中写结果的起始行Fori=1Torowno'开始读原始数据

origindata=Cells(i+rowstart-1,colstart)'读原始数据'广州印花税尾数处理方法:过0.5进1,不足舍去,刚好为0.5及其倍数则不变Iforigindata*100Mod50<>0Thenmoney=Round(origindata,0)'以0.5为界限作四舍五入Elsemoney=origindata'整数及尾数刚好为0.5不作处理EndIfVBAProject.ThisWorkbook.Sheets(1).Activate'转到结果页ActiveSheet.Cells(i+1+j,1)=origindata'在第一列写入原始数据Workbooks(filename).Activate''转到要计算的原始数据数据文件Fork=0To6'循环计算各面额所需张数Whilemoney>=moneytype(k)money=money-moneytype(k)billno=billno+1WendVBAProject.ThisWorkbook.Sheets(1).ActivateActiveSheet.Cells(i+1+j,k+2)=billno'在相应位置写入该面额张数billno=0'清0准备计算下一面额Workbooks(filename).ActivateNextkrowbegain=rowbegain+1'结果页中写结果的起始行下移一行Nextiflagcal=flagcal+1'计算次数累加rowbegain=rowbegain+1'添加一空行区分不同次数的结果Application.ScreenUpdating=True'恢复屏幕刷新VBAProject.ThisWorkbook.Sheets(1).Activate'打开结果页EndSub编好后存盘,退出宏编辑器。开始构建一个工具栏:[工具]—[自定义],点击[工具栏]---[新建],工具栏名称定为“印花税”,这时会出现,点击[命令],将“命令”列表中任意图标拖动到这个工具栏中,在刚拖过来的图标上点右键,选择[命名],将其改为“印花税面额计算”,选择[总是只用文字],这时会出现,在“印花税面额计算”上点一次右键,选择[指定宏],选择“ThisWorkbook.stamp_duty”,点[确定]即可。以后要计算时,只要选好原始数据,点击该工具栏即可。73、SubAA()Sheet1.Visible=2‘深度隐藏Sheet1.Visible=-1’显示EndSub74、你在“workbook"的PrivateSubWorkbook_BeforeClose(CancelAsBoolean)中加入如下句子:myNowTime=Format(Now,"yymmdd"&"-"&"hhmmss")ActiveWorkbook.SaveAsFilename:=currPath&myNowTime&".xls",AddToMru:=False‘(”currPath“为你的路径及文件名称)这样你保存文件可以年、月、日来实现。甚至可以小时、分、秒来保存。对于在编程序的来讲比较有用。如果你不需要“小时、分及秒”,可把后面的[&"-"&"hhmmss")]取消即可。75、我们日常上送、下发的报表材料、通知等都要加盖公章,如果把这项工作交给Excel或Word来完成,我们的工作就轻松多了。

第一步:制作公章图案首先我们要做出一个公章的图案,最简单的办法是把公章图案扫描到电脑中,然后处理成透明的GIF图像。我们也可以直接用Excel来制作:把绘图工具打开,选中“椭圆”工具,在按下“Shift”键的同时拖开鼠标,就可以得到一个正圆了。双击这个正圆打开“设置自选图形格式”对话框,在“颜色与线条”标签中,填充颜色选“无填充颜色”,线条颜色设为红色,选3磅粗的单线形(图)。公章的文字用艺术字来制作,填充颜色和线条颜色都用红色,并设成无阴影产。弧形文字和水平文字要分开来做,在做弧形文字时,把艺术字拖到圆形的上方,在艺术字工具中选“艺术字形状-细上弯弧”,按住黄色的四方块往下拉,再作适当的调整,就可以做出公章里的圆弧形的文字了。公章中间还有一个红五星,用“自选图形”的星形就可以做出来了,填充颜色和线条颜色用红色。最后,按住“Shift”键把组成公章的文字、图形全部选上,执行右键菜单中的“组合”命令,一个公章就做好了。如何把做好的公章保存出来?这里有一方法:把工作表另存为Web页,然后到保存目录中找到*.files的文件夹,里面有一个GIF图片,这就是刚才做好的公章图案了,它的背景是透明的,我们把它改名为gongzhang.gif保存下来即可。第二步:添加“盖章”按钮接下来我们给Excel添加一个盖章按钮,当一个工作表做好后,点击这个盖章按钮,就可以为我们盖上公章了。先把公章图形复制出来(用来粘贴作为按钮的图标),然后打开“工具-自定义”对话框,选中“命令”标签,在“类别”栏中找到“宏”,在右边的“命令”栏里就会出现一项“自定义按钮”。用鼠标把这个笑脸图标拖出到菜单栏或工具栏上放下,在笑脸图标上击右键,在弹出的菜单中把“命名”处的文字改为“加盖公章”。接下来点击“粘贴按钮图标”这个命令,就可以用刚和复制的公章图形来代替笑脸图标了。把鼠标移下来选中“分配超级链接-插入图片”,然后在“请键入文件名称或Web页名称”栏里输入公章图片gongzhang.gif的文件名及路径,然后按“确定”返回。好了,看到“加盖公章”这个按钮了吧,点击一下看看,呵呵,页面上就盖上一个鲜红的公章了,用鼠标可以把它拖到任意的地方。在Word文档中加盖公章的方法与此大同小异,大家可以自己试一试。76、如何使某一个固定的菜单项无效Application.CommandBars("File").Controls(6).Enabled=FalseControls(6)中的6就是所在菜单栏的行数我觉得这样可能更可靠:DimiAsIntegerFori=1ToApplication.CommandBars("File").Controls.CountIfApplication.CommandBars("File").Controls(i).Caption="另存为(&A)..."ThenApplication.CommandBars("File").Controls(i).Enabled=FalseEndIfNexti77、请教大家,我想在EXCEL文件退出时,另存为当前目录下的子目录BAK中,比如EXCEL文件在C盘,就另存为C:\BAK子目录下,但EXCEL文件的位置不确定,不知如何写语句?注意先引用"MicrosoftScriptingRuntime"PrivateSubWorkbook_BeforeClose(CancelAsBoolean)'在本文件要關閉前,執行備份動作。IfNotActiveWorkbook.SavedThenExitSub'若原文件未存檔,備份檔也不存。ThisPath=ThisWorkbook.Path'假定備份文件夾之名稱為"BAK",若本文件是備份檔,則不需再備份。IfLen(Application.WorksheetFunction.Substitute(ThisPath,"BAK",""))<Len(ThisPath)ThenExitSub

Bak=ThisPath&"\"&"BAK"'檢查備份文件夾是否存在,若不存在,就建立一個。IfLen(Dir(Bak,vbDirectory))>0ThenIf(GetAttr(Bak)AndvbDirectory)=vbDirectoryThenGoTo3'若已存在,跳到下一步。EndIfMkDirBak'建立備份文件夾。'改變目前路徑到備份文件夾路徑,並備份之。3ChDirBakApplication.EnableEvents=False'避免執行BeforeSave事件。Application.DisplayAlerts=False'避免顯示是否要覆蓋原備份文件之訊息。ActiveWorkbook.SaveAsChDirThisPath'改變目前路徑回到原文件夾路徑。Application.DisplayAlerts=TrueApplication.EnableEvents=TrueEndSub上述程式有個漏洞,就是在本文件做過更動,且存檔過了,但最後一次的更動未存檔,則IfNotActiveWorkbook.SavedThenExitSub這個判斷會造成不存備份檔之錯誤決定。若想彌補上述錯誤,將觸發的事件改成Workbook_BeforeSave,卻會造成Excel關閉的錯誤。78、文件保存为以某一单元格中的值为文件名的宏怎么写用命令:ActiveWorkbook.SaveCopyAsStr(Range("Sheet1!A1"))+".xls"79、Offset属性参阅应用于示例特性应用于Range对象的Offset属性。返回一个Range对象,该对象代表某个指定区域以外的区域。只读。expression.Offset(RowOffset,ColumnOffset)expression必需。该表达式返回一个Range对象。RowOffsetVariant类型,可选。区域偏移的行数(正值、负值或0(零))。正值表示向下偏移,负值表示向上偏移,默认值为0。ColumnOffsetVariant类型,可选。区域偏移的列数(正值、负值或0(零))。正值表示向右偏移,负值表示向左偏移,默认值为0。应用于TickLabels对象的Offset属性。返回或设置各级别标签之间的距离以及第一级标签与坐标轴之间的距离。其默认距离为百分之百,代表坐标轴标签与坐标轴之间的默认距离。其值可以为从0到1000之间的一个整数百分比,表示相对于坐标轴标签的字体大小。Long类型,可读写。expression.Offsetexpression必需。该表达式返回一个TickLabels对象。示例应用于Range对象。本示例激活Sheet1上活动单元格向右偏移三列、向下偏移三行处的单元格。Worksheets("Sheet1").ActivateActiveCell.Offset(rowOffset:=3,columnOffset:=3).Activate本示例假定Sheet1中包含一个具有标题行的表格。本示例先选定该表格,但并不选择标题行。运行本示例之前,活动单元格必须位于表格中。Settbl=ActiveCell.CurrentRegion

tbl.Offset(1,0).Resize(tbl.Rows.Count-1,_tbl.Columns.Count).Select应用于TickLabels对象。如果偏移量小于500,则本示例将Chart1中数值轴上标签之间的距离设置为当前距离的两倍。WithCharts("Chart1").Axes(xlValue).TickLabelsIf.Offset<500then.Offset=.Offset*2EndIfEndWith80、新建工作簿参阅特性若要在VisualBasic中创建新的工作簿,请使用Add方法。下述过程创建了新的工作簿。MicrosoftExcel自动将该工作簿命名为“BookN”,其中“N”是下一个可用的数字。新工作簿将成为活动工作簿。SubAddOne()Workbooks.AddEndSub创建新工作簿更好的方法是将其分配给一个对象变量。下例中,由Add方法返回的Workbook对象分配给了对象变量newBook。然后,又设置了newBook的若干属性。使用对象变量可以很容易地控制新工作簿。SubAddNew()SetNewBook=Workbooks.AddWithNewBook.Title="AllSales".Subject="Sales".SaveAsFilename:="Allsales.xls"EndWithEndSub

81、Rem:将活动单元格从A5移到A6,并将A6单元格的数值保存到x变量中range("A5").select此命令就是选择A5单元格Activecell.offset(1,0).selectX=activecell.value82、用代码窗口中可用F8运行宏,Alt+F8显示宏对话框,Alt+F11可以打开VBE编辑器83、OptionExplicit在程序代码前使用该命令,则变量要在声明后才能使用,否则编译程序无法识别该变量,从而产生错误信息84、Load语句用于加载窗体,加载后将占用内存,Hide方法使窗体隐藏,但仍在内存中,故不再使用窗体时应使用Uuload语句及时卸载,将内存交还系统,Show方法用来显示一个窗体,格式:窗体名称.show模式,模式可取0或1,为1时,不能到其他窗体操作,只有关闭该窗体后才能对其他窗体操作85、控件的命名规则,通常使用3个字母的前缀命名控件,如Label的前缀为lbl,初学者最好养成良好的命名习惯86、按下Ctrl+Enter键单元格不移动。87、按下F2键直接在单元格内编辑,不需动鼠标88、命令按钮不支持双击(Dbclick)事件89、PrivateSubCheckBox1_Click()IfCheckBox1.ValueThen

MsgBox"333"ElseMsgBox"666"EndIfEndSub本段的主要用意在于明白了IfCheckBox1.ValueThen与IfCheckBox1.Value=TrueThen90、Timer是计时器,功能是按指定时间间隔产生定时事件91、在一个语句要分行显示的地方加一个或多个空格,加一个下划线_然后回车转入下一物理行,作用在于代码一行写不下时续行,程序代码中一行较短时可加:把多行连成一行显示92、ifa>15thenb=10elseb=100endif可改为如下if语句b=iif(a.15,10,100)93、F12用于启动另存为对话框94、x=shell(calc.exe,1)可打开计算器程序95、call语句格式:Call<子过程名>[(<实际参数表>)]如果过程本身没有参数,则实参和括号可省略,并报参数放在括号中,另一个调用Sub过程的方法是:<子过程名>[<实际参数表>]比前一个少了Call和括号,子过程调用语句的实参在数目、类型、排列上与子过程定义语句的形式参数表一致96、自定义函数一例,求abc三个数的平均PrivateFunctionPassed(ByValaAsinteger,ByValbAsinteger,ByValcAsinteger)ave=(a+b+c)/3EndSub在定义时必须向函数过程名赋值,而子程序名不能赋值97、在工作表任意单元格输入=Cell("filename")可获得文件的完整路径、文件名和工作表名98、在打开Excel文件时按住Shift键,将不运行VBA过程,可防止宏病毒,单击文件关闭命令,在点关闭时按住Shift键将在不运行VBA过程的情况下关闭工作簿,可防止关闭时自动运行的宏病毒。99、让一个变量得到单元格A1到A5的总和(变量设为X),X=Sum(Range(“A1:A5”))错X=Application.WorksheetFunction.Sum(Range(“A1:A5”))正确也就是说必须通过Application的WorksheetFunction属性间接调用工作表函数100、Rem和'是注释符,注释语句是非执行语句,要养成对代码注释的习惯。

101、ActiveSheet.Next.Select选择活动工作表下一张工作表,ActiveSheet.Previous.Select选上一张102、单元格B2:B10数值不全为空用IF语句表达ForEachclinActiveSheet.Range("B2:B10")Ifcl.Value<>""thenmsgbox"有非空单元格"ExitForendifnext103、用Range引用单元格和单元格区域

Range("A1")单元格A1Range("A1:B5")从单元格A1到B5区域Range("A1:B5,B1:B7")多块的选定区域Range("A:A")A列Range("1:1")第一行Range("A:C")A列到C列的区域Range("1:5")第1行到第5行的区域Range("1:1,3:3")第1、行Range("A:A,C:C")A列、C列104、用Cells及编号引用单元格Cells(6,1)A6单元格如果对工作表用Cells属性时不指定索引,表示引用工作表上的所有单元格,下例清除活动工作簿中工作表Sheet1上所有单元格的内容Worksheets(“sheet1”).Cells.ClearContents105、可用变量代入单元格索引值,故Cells属性非常适用于在单元格区域中循环,如:Forcounter=1To20Worksheets(“sheet1”).Cells(counter,3).value=counterNextcounter106、引用行或列Rows(1)第1行Rows所有行Columns(1)第1列Columns(“C”)第3列Columns工作表上所有列106、可用方括号将A1样式的引用或命名区域的名称括起来,作为Range属性的快捷方式,这样就不必键入Range和引号,如Worksheets(“sheet1”).[A1:B2].clearContents[MyRange].Value=30107、用Offset处理按相对于其他单元格的某一位置的常用办法是使用Offset属性,本例将活动工作表上活动单元格下一行和右边三列的单元格的内容设置为下划线,如:ActiveCell.Offset(1,3).font.Underline=XlDouble108、把别的工作表Sheet2数据,读到当前工作表的方法列举1)[A1]=Sheet2.[A1]把Sheet2A1单元格的数据,读到A1单元格2)[A2:A4]=Sheet2.[B1]把Sheet2单元格B1的数据读到A2:到A4单元格3)Range(B1”)=Sheet2.Range(“B1”)把Sheet2工作表单元格B1数据,读到B1单元格4)Range(“C1:C3”)=Sheet2.Range(“C1”)把Sheet2工作表单元格C1数据,读到C1:C35)Cells(1,4)=Sheet2Cells(1,4)把Sheet2工作表单元格D1数据,读到D1单元格6)Range(Cells(1,5),Cells(5,5)=Sheet2.Cells(1,5)把sheet2工作表单元格E1数据,读到E1:E5单元格7)Selection.Value=Sheet2.[F1]把Sheet2工作表单元格[F1]数据,读到任何你点选的单元格109、Sub前有个Private表示是私有子程序,这个子程序不会出现在“宏”对话框中110、Subtest()ActiveSheet.CalculateEndSub重算活动工作表

111、编程前应该尽可能地多了解Excel对象的属性、方法112、每一个Excel对象的属性、方法的调用都要通过OLE连接的一个或多个调用,这些OLE调用都是需要时间的,减少使用对象引用能加快VBA代码的运行113、使用With语句Workbooks(1).Sheets(1).Range(“A1:A1000”).font.Name=”Pay”Workbooks(1).Sheets(1).Range(“A1:A1000”).Font.Fontstyle=”Bold”…改用With语句则运行速度加快例:WithWorkbooks(1).Sheets(1).Range(“A1:A1000”).font.Name=”Pay”.Fontstyle=Bold”…EndWith114、用set设置对象变量,以减少对象的访问,如:SetMyRange=Workbooks(1).Sheets(1)Mysheet.Range(“A1”).Value=100Mysheet.Range(“A2”).Value=200比直接用Workbooks(1).Sheets(1).Range(“A1”).Value=100Workbooks(1).Sheets(1).Range(“A2”).Value=200运行快115、在循环中要尽是减少对象的访问Fork=1To100Sheets(“sheet1”).selectCells(k,1).value=Cells(1,1).ValueNextk更快的代码是setTheValue=Cells(1,1).ValueSheets(“sheet1”).selectFork=1To100Cells(k,1).value=TheValue116、减少对象的激活和选择如果你是通过录制宏的来学习VBA的程序里一定充满了对象的激活和选择,如Workbooks(XXX).active、Sheets(XXX).Select、Range(XXX).Select等,但事实上大多数情况下这些操作不是必须的,如Sheets(“sheet1”).SelectRange(“A1”).Value=100Range(“A2”).Value=200可改为Withsheets(“Sheet3”).Range(“A1”)=100.Range(“A2”)=200117、关闭屏幕更新是提高运行速度的最有效的办法,推荐使用Application.ScreenUpdate=False程序运行后再改回来118、VBA中默认的数据类型是Variant,你必须选择使用何种数据类型,因为Variant数据类型占用存储空间较大(16或22字节)而且它将影响程序的性能,Vba必须识别Variant类型的变量中存储了何种数据类型。119、再列一个自定义函数计算价格为10%为运费的简单函数例子

PublicFunctionShipping(Price)Shipping=Price*0.1EndFunction如还是不懂的话,将上述过程复制到模块中,然后在工作表任意单元格中输入=Shipping(C1)你就会明白120、ActiveWindow.DisplyGridlines=False此句用来关闭网格线。

121、100个错误类型1应用程序定义或对象定义错误2应用程序定义或对象定义错误3无GoSub返回4应用程序定义或对象定义错误5无效的过程调用或参数6溢出7内存溢出8应用程序定义或对象定义错误9下标越界10该数组被固定或暂时锁定11除数为零12应用程序定义或对象定义错误13类型不匹配14溢出串空间15应用程序定义或对象定义错误16表达式太复杂17不能执行所需的操作18出现用户中断19应用程序定义或对象定义错误20无错误恢复21应用程序定义或对象定义错误22应用程序定义或对象定义错误23应用程序定义或对象定义错误24应用程序定义或对象定义错误25应用程序定义或对象定义错误26应用程序定义或对象定义错误27应用程序定义或对象定义错误28溢出堆栈空间29应用程序定义或对象定义错误30应用程序定义或对象定义错误31应用程序定义或对象定义错误32应用程序定义或对象定义错误33应用程序定义或对象定义错误34应用程序定义或对象定义错误35子过程或函数未定义36应用程序定义或对象定义错误37应用程序定义或对象定义错误38应用程序定义或对象定义错误

39应用程序定义或对象定义错误40应用程序定义或对象定义错误41应用程序定义或对象定义错误42应用程序定义或对象定义错误43应用程序定义或对象定义错误44应用程序定义或对象定义错误45应用程序定义或对象定义错误46应用程序定义或对象定义错误47DLL应用程序客户太多48加载DLL错误49DLL调用约定错误50应用程序定义或对象定义错误51内部错误52文件名或文件号错误53文件未找到54文件模式错误55文件已打开56应用程序定义或对象定义错误57设备I/O错误58文件已存在59记录长度错误60应用程序定义或对象定义错误61磁盘已满62输入超出文件尾63记录号错误64应用程序定义或对象定义错误65应用程序定义或对象定义错误66应用程序定义或对象定义错误67文件太多68设备不可用69应用程序定义或对象定义错误70拒绝的权限71磁盘未准备好72应用程序定义或对象定义错误73应用程序定义或对象定义错误74不能更名为不同的驱动器75路径/文件访问错误76路径未找到77应用程序定义或对象定义错误78应用程序定义或对象定义错误79应用程序定义或对象定义错误80应用程序定义或对象定义错误81应用程序定义或对象定义错误82应用程序定义或对象定义错误

83应用程序定义或对象定义错误84应用程序定义或对象定义错误85应用程序定义或对象定义错误86应用程序定义或对象定义错误87应用程序定义或对象定义错误88应用程序定义或对象定义错误89应用程序定义或对象定义错误90应用程序定义或对象定义错误91对象变量或With块变量未设置92For循环未初始化93无效的模式串94无效使用Null95应用程序定义或对象定义错误96由于对象已经激活了事件接受器支持的最大数目的事件,不能吸收对象的事件97不能调用对象的友元函数,该对象不是所定义类的一个实例。98属性或方法调用不能包括对私有对象的引用,不论是作为参数还是作为返回值99应用程序定义或对象定义错误100应用程序定义或对象定义错误

122、PrivateSubCalendar1_Click()ActiveCell=Me.Calendar1.ValueEndSub123、设置日历控件字号PrivateSubUserForm_Initialize()Me.Calendar1.GridFont.Size=14EndSub124、以下是从金刚金作品里提出来的部份事件代码,做得很好,值得借鉴学习:PrivateSubWorkbook_Activate()MsgBox"工作簿被切换为作用工作簿",vbInformation,"Workbook_Activate"EndSubPrivateSubWorkbook_AddinInstall()MsgBox"激活新的加载宏时",vbInformation,"Workbook_AddinInstall"EndSubPrivateSubWorkbook_AddinUninstall()MsgBox"取消以前选取的加载宏时",vbInformation,"Workbook_AddinUninstall"EndSubPrivateSubWorkbook_BeforeClose(CancelAsBoolean)MsgBox"工作簿被关闭之前",vbInformation,"Workbook_BeforeClose"EndSubPrivateSubWorkbook_BeforePrint(CancelAsBoolean)MsgBox"工作簿打印之前",vbInformation,"Workbook_BeforePrint"EndSubPrivateSubWorkbook_BeforeSave(ByValSaveAsUIAsBoolean,CancelAsBoolean)MsgBox"工作簿进行保存之前",vbInformation,"Workbook_BeforeSave"EndSub

PrivateSubWorkbook_Deactivate()MsgBox"工作簿切换为非作用工作簿",vbInformation,"Workbook_Deactivate"EndSubPrivateSubWorkbook_NewSheet(ByValShAsObject)MsgBox"新建工作表",vbInformation,"Workbook_NewSheet"EndSubPrivateSubWorkbook_Open()MsgBox"打开工作簿",vbInformation,"Workbook_Open"EndSubPrivateSubWorkbook_PivotTableCloseConnection(ByValTargetAsPivotTable)MsgBox"数据透视表关闭与其数据源的连接之后",vbInformation,"Workbook_PivotTableCloseConnection"EndSubPrivateSubWorkbook_PivotTableOpenConnection(ByValTargetAsPivotTable)MsgBox"数据透视表打开与其数据源的连接之后",vbInformation,"Workbook_PivotTableOpenConnection"EndSubPrivateSubWorkbook_SheetActivate(ByValShAsObject)MsgBox"工作表"&Sh.Name&"切换为作用工作表",vbInformation,"Workbook_SheetActivate"EndSubPrivateSubWorkbook_SheetBeforeDoubleClick(ByValShAsObject,ByValTargetAsRange,CancelAsBoolean)MsgBox"任一单元格双击鼠标之后",vbInformation,"Workbook_SheetBeforeDoubleClick"EndSubPrivateSubWorkbook_SheetBeforeRightClick(ByValShAsObject,ByValTargetAsRange,CancelAsBoolean)MsgBox"任一单元格单击鼠标右键之后",vbInformation,"Workbook_SheetBeforeRightClick"EndSubPrivateSubWorkbook_SheetCalculate(ByValShAsObject)MsgBox"工作表内容进行重算之后",vbInformation,"Workbook_SheetCalculate"EndSubPrivateSubWorkbook_SheetChange(ByValShAsObject,ByValTargetAsRange)MsgBox"在工作表内进行不同的操作",vbInformation,"Workbook_SheetChange"EndSubPrivateSubWorkbook_SheetDeactivate(ByValShAsObject)MsgBox"工作表"&Sh.Name&"切换为非作用工作表",vbInformation,"Workbook_SheetDeactivate"EndSubPrivateSubWorkbook_SheetFollowHyperlink(ByValShAsObject,ByValTargetAsHyperlink)MsgBox"按下Excel超链接之后",vbInformation,"Workbook_SheetFollowHyperlink"EndSubPrivateSubWorkbook_SheetPivotTableUpdate(ByValShAsObject,ByValTargetAsPivotTable)MsgBox"数据透视表更新之后",vbInformation,"Workbook_SheetPivotTableUpdate"EndSubPrivateSubWorkbook_SheetSelectionChange(ByValShAsObject,ByValTargetAsRange)

MsgBox"工作表里选取不同单元格范围时",vbInformation,"Workbook_SheetSelectionChange"EndSubPrivateSubWorkbook_WindowActivate(ByValWnAsWindow)MsgBox"工作簿切换为作用工作簿",vbInformation,"Workbook_WindowActivate"EndSubPrivateSubWorkbook_WindowDeactivate(ByValWnAsWindow)MsgBox"工作簿切换为非作用工作簿",vbInformation,"Workbook_WindowDeactivate"EndSubPrivateSubWorkbook_WindowResize(ByValWnAsWindow)MsgBox"工作簿被打开或窗口最大化、最小化之后",vbInformation,"Workbook_WindowResize"EndSubPrivateSubWorksheet_SelectionChange(ByValTargetAsRange)MsgBox"选取不同单元格范围时",vbInformation,"Worksheet_SelectionChange"EndSub125、Rem选定单元格的个数Subt()MsgBoxSelection.Cells.CountEndSub126、Application.OnKey"{F11}","ccc"禁用F11127、'选中A列除A1外的第一个非空单元格[a65536].End(xlUp).Offset(1,0).Select128、PrivateSubCommandButton1_Click()OnErrorGoToad'注意后面的ad,这是错误处理的用法i=Range("a1").ValueSheets(CStr(i)).Selectret=MsgBox("是否覆盖",vbYesNo,"")Ifret=vbYesThenRange("A5:C7").CopySheets(CStr(i)).Range("A1")'重点在copy之后ElseSheets.Add.Name=i&".2"Range("A5:C7").CopySheets(CStr(i&".2")).Range("A1")EndIfEndad:Sheets.Add.Name=i'工作表名的变化是可见的Range("A5:C7").CopySheets(CStr(i)).Range("A1")EndSub129、用变量取代Sheet1中的“1”Fori=1To3Sheets("sheet"&i).Range("A2")="1234"Next130、中英对照English繁體中文簡体中文AbsoluteReferencing絕對參照绝对引用

ActiveCell現存儲存格活动单元格Add-in增益集加载宏Address位址地址Array陣列数组ArrayFormula陣列公式数组公式Audit稽核审核Bold粗體粗体Bug蟲BugCell儲存格单元格CircularReference循環參照循环引用Code程式碼代码Column欄列Command指令命令Comment註解注释Condition條件条件Constant常數常数Cursor浮標指针Cursor游標鼠标指针Data數據/資料数据DataType資料型態数据类型Debug偵錯调试Debug除蟲调试Declare宣告声明Dependent從屬从属DialogBox對話方塊对话框Double雙精度浮點數双精度浮点数Double-click(onmouse)雙按双击Drag拖曳拖曳Drop-downBox清單方塊?Edit編緝编辑ElectronicMail/Email電郵/電子郵件电子邮件Event事件事件Execute執行执行File檔案文件Filter篩選筛选Flowchart流程圖流程图Footer頁尾页脚Form表單窗体Format格式格式Function函數函数General一般标准HardCopy硬本硬拷贝Header頁首页眉Help說明帮助

Hyperlink超連結超级链接ImmediateWindow即時運算視窗立即窗口Indent縮排缩进Insert插入插入Internet互聯網因特网Italic斜體斜体Label標籤标签Link連結链接Loop迴圈循环Macro巨集宏Member成員成员Method方法方法Microsoft微軟微软Module模組模块Newsgroup新聞組新闻组NumberFormat數字格式数字格式Object物件对象ObjectBrowser瀏覽物件对象浏览器OfficeAssistantOffice小幫手Office助手Options選項选项Parameter參數参数Parameter引數参数Path路徑(檔案的)路径Precedent前導先例Program程式程序Program/Subroutine程序过程Project專案工程Property屬性属性Query查詢查询Range範圍范围RelativeReferencing相對參照相对引用Right-click(onmouse)右按右击Row列行ScatterChartXY散佈圖XY散点图ScrollBar捲軸滚动条Select選取选择Single單精度浮點數单精度浮点数Single-click(onmouse)單按单击SmartTag智慧標籤智能标记SoftCopy軟本软拷贝Sort排序排序Spinner微調按鈕微调按钮Statement陳述式表达式StrikethroughLine刪除線删除线

String字串字符串Subscript下標上标Superscript上標下标Tab索引標籤TabTemplate範本模板Text文字文本Toolbar工作列工具栏Tools工具工具Transpose轉置转置Trendline趨勢線趋势线Underline底線下划线Validation驗證确认Variable變數变量View檢視视图VisualBasicEditorVisualBasic編輯器VisualBasic编辑器Watch監看式监视Wildcards(*或?)萬用字元通配符Window視窗窗口Wizard精靈向导Workbook活頁簿工作簿Worksheet工作表工作表

  评论这张
 
阅读(509)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017