《基于Excel VBA的财务自动化》配套习题答案.docx
第1章VBA入门知识I.动手练习:关闭所有已打开的Excel程序,然后新建并打开一个CXCCl文件,在该文件的B3:M5区域内填入任意数字。在该文件内录制宏,宏的名字为“format"。录制以卜操作:< 1)地置Al:Ml为合并并居中,行高3().内容垂宜居中,字号20,< 2)设置A2:M2填充色为淡蓝色.< 3)设置B3:M5数字格式为“会计专用。(4)在A6输入“Total:",在第六行,B到M每一列进行求和。< 5)设置A6:M6字体加粗,上边框线为双线。< 6)在输入“GrandToIaI:",在M8对第六行进行求和“< 7)设置第八行字体加粗.< 8)设置所有列,自动适应列宽。请根据表中数据生成折线图,并将操作过程用宏录制下来。2.请根据表中数据生成折现图,并将操作过程用宏录制下来.SubMacrol0Range(*B1:C13*).SelectCharts.AddActiveChart.ChartType=Xl1.ineMarkersActiveChart.SetSourceDataSource:=Shects(*Shcet1*).Rane(*Bl:C13*)»PlotByJ=XlColumnsctiveChart.Ix)cationWhere:=xll.ocatiOnAsObject,Nane:=*Shee11”WithAciivcCharl.Axes(xlCalcory).HasMajorGridlines=False.IIasMinorGridlines二FalseEndWithWithActiveChart.Axes(x1Value).IIasMajorGridlines:False.IIasMinorGridlines=FalseEndWith第2章程序设计的基本知识1 .什么是IDE,其功能是什么?什么是VBE,其功能是什么?编程语言自1.I的集成开发环境叫IDE(IntegratedDevelopmentEnVirOnment),它为用户提供代码编写环境、分析功能、调试功能,比如语法高亮、语句自动补全、参考资料等。VBE是excelVBA的集成开发环境,为用户提供代码编写环境、分析功能、调试功能,也可以符VBE理解为EXCd中VBA代码的编译器。2 .什么是工程资源管理器?其中包含哪些内容?默认情况卜.,一个excel文件的工程资源管理器中包含哪些对象?工程资源管理器是存放对象的容器,包含/当前在EXCel中打开的所有EKCel对象,包含工作表,模块,窗体,加载宏及隐藏的工作薄,每个工作薄被认为是一个工程。默认情况下只有MicrosoftExcel对象,其中又包含了一个工作簿对象(ThiSWorkbook)和若干工作表对象(如SheetRSheet2,Sheel3等)。3.VBA有哪些基本的数值型数据类型?共基本特点是什么?国本数据类型关雄字存储空间用途数值型整型Integer2字节存放整数.冠国-32768-32767长整型1.ong4字节存放整数,范因-2147483648-2147483647学精度浮点型Single4字节存放实数,范第3402823E383.W2823E38双精度浮点型Double8字节存放实数,范阳-1.79769313486232E301.79769313486232E3O8货币型Currency8字节存放财芬数据.范国922337203685477.5808-922337203685477.58074.请设计一个VBA程序,由用户输入一个数字后,判断该数是否能被2、3、5其中之整除,并将判断结果用弹出对话框告诉用户。Subtest3()s=InPUtBOXe请输入一个整数:”)IfsMod2=0ThenWs8Box.输入的效能被2整除!”ElsoIfsMod3=0ThenHsrBox”输入的效能被3整除!”ElselfSMod5=0IhenHsgBox"给入的数能被5整除!”ElseJkgBox'输入的数不能被2、3,5其中之一整除!*EndIfEndSub5.分别用FOr循环和D。循环编写一个VBA程序,计算1.lOO的自然数之和,For循环:Submysum()Dim1.sunAs1.ong,is1.ongFori=1To1001.sun=1.sum+iNextMsgBox,110A×0t>>6yoff£0*&1.sumEndSubDo循环:Submysum2()Dim1.suas1.ong,iAs1.ongDoUhilei<IOl1.sub=1.SUm+ii=i+11.oopMsgBox*l100A×06wylP,*&1.sumEndSub第3章ExcelVBA的重要概念1.Excd中有哪些常见的对象?它们之间的层次结构是怎样的?有APPIiCaIion对象、WOrkbOok对象、Worksheet对象、Range对象。EXCCl应用程序只有个APPIiCatiOn对象,个APPliCatiOn对象中可能有多个工作簿对象,工作簿中可能包含多个工作表对以,而工作表中又包含着多个单元格对象.2.基于对象集合的概念,可以对workbook和WOrkShCet对象采用两种基本的表示方法,试举例说明。<1)对象集合("对象名"),如WorkSheetSCSheeII")表示所有工作表中名为Sheetl的那张工作表:<2)对象集合(对象索引号)。如WOrkShCCM2)表示排在第2位的那张工作表。3 .对象变量与其他变量在使用上有什么不同?<1)时象变量在赋值之前,必须先声明,如DimmgaSRange:(1)给对象变量赋值.必须加Sel关键字,如Setmg=Range("Al:C2"):(3)程序结束前,最好用语句“Sei对象变量名=Nothing”手动择放对象变量内存空间。4 .简述对象的属性、方法、事件。属性是对象的一种特征,每个对象都可能有多个属性。在VBA代码中般通过赋值语句的方式来设置对型的属性值,对您和属性之间同样用英文符号连接,对象在前,属性在后.方法是作用于对象的悚作,每个对象都可能有多个方法。如果说属性由于是对象的特征,因而是名词形式的话,那么方法就可看作是动词形式,例如创建、删除、关闭、插入、激活、计算、身制、查找等。对象和方法之间也用英文句点连接。对象的事件是当一定主体对象的特定事件发生后,就会触发宏过程的自动启动运行。VBA可以响应许多事件,而这些事件又是由用户或者系统本身所触发的。对于对象而言,事件就是发生在该对象上的事情或消息。系统为每个对象预先定义好了一系列的事件,例如,CIiCk(单击)、DbICliCk(双击)等.第4章VB操作主要对象1 .什么是Application对象?Application对象的worksheets和Sheets属性有什么区别?ActivcWorkbook和thisvorkbook属性有什么区别?在Excel对象模型层次结构最顶端的是APPliCaliOn对彖,代表Excel应用程序本身。WOrkSheelS是活动工作簿中所有WCrkSheel对象,不包括宏表等:Sheet5当前活动工作薄中所有ShCCl对象,包括宏表等,二者可能一样,也可能不一样。ActivcWorkbook是当前活动工作簿,Ihisworkbook是运行当前宏代码的工作簿,二者可能一样,也可能不一样。2 .请用Yba代码表示以下描述:(I)关闭名为“测试”的工作簿< 2)保存代码所在的工作簿< 3)选择标签名称名为“1月''的工作表< 4)删除第2张工作表< 5)新建一张工作表,放在最后位置答:.orkbooks("测试").CloseThisWorkbook.Saveworksheets("1月").selectforksheets(2).DeleteIorksheets.Addafter:=Iorksheets(Worksheets,count)3 .请用2种或以上的方法引用:(I)单元格Al:< 2)单元格区域Al:C3;< 3)第2行:< 4)第2列<1)ra11e(“al”),cells(1,1)(2) range(*'1:C3").range(*'al").resize(3,3)(3) Rows2:2*).Rows(2)<4)Cbluens("B:B),Columns(2)4 .试写个SUb过程,将当前工作薄中的所有工作表名称写入第一张表的A列。Subtest()DimwsAsWorksheetColuinns(I),ClearRangeA)="工作表名称"ForEachwsInWorksheetsCelIs(Rows.Count,1).End(xl1.p).Offset(I).Value=ws.NameNextSetws=NothingEndSub5 .某工作表数据如下图所示,试编制Vba代码,分别实现D5单元格数据与A列数据的加、减、乘、除运算。/;AlBCWl1 152 23 34 45 .5PublicSubtest()DimInyRanRCIASRangeDimInyRange2AsRangeSetmyRangel=Range(*1:A7*)'指定的单元格区域RangeCDl),Value=5'指定要进行运算的值SetmyRange2=Range(*I)'指定运Wttt的弟元格myRange2.CopyMsgBox”下面将进行加法计算”myRangel.PasteSpecialOperation:=xIPasteSpecialOperationAddMSRBOK”下面将进行减法计算.inyRangel.PasteSpecialOperation:=x1PasteSpecialOperatiOnSubtractMsgBox”下面将进行乘法计JrInyRanRe1.PasleSpocialOperation:=x1PasteSpcciaIOperalionMuItiplyMsgBox”下面将进行除法计算”myRangel.PasteSpecialOperationr-XlPasteSpecia1OperationDivideSetrnyRangel=NothingSetm>,Range2=NothingEndSub第5章函数1 .在Vba中,如何调用工作表函数?如何调用VBA内巴函数?工作表函数主要通过两种方式谢用:第一种为利用APPliCation对象调用,使用特点是在函数名前加“WorksheetFunction”的前缀:第二种为利用字符吊直接在单元格中写入函数。调用VBA内置函数可以在前面加上:VBA.函数名,也或者直接调用写函数名.2 .什么是自定义函数?自定义函数的基本格式是怎样的?VBA用户可以自行定义一个具有特殊功能的函数,即自定义函数,其基本格式如卜;Function南数名(变量)Endfunction3 .与Excel内置函数相比,自定义函数的使用中有什么主要问题?可以采用什么方法予以解决?自定义函数值不能自动更新,这一点与Excel内置函数不同.解决自定义函数自动更新的方法主要有两种:一是在工作表中选择任何两列进行剪切和粘贴操作,二是在函数体内第行