ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:43.61KB ,
资源ID:20819597      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20819597.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Excel宏技巧IIWord格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Excel宏技巧IIWord格式文档下载.docx

1、Chr(10)2)Next基于VB和EXCEL的报表设计及打印在现代管理信息系统的开发中,经常涉及到数据信息的分析、加工,最终还需把统计结果形成各种形式的报表提供给领导决策参考,或进行外部交流。在VisualBasic中制作报表,通常是用数据环境设计器(DataEnvironmentDesigner)与数据报表设计器(DataReportDesigner),或者使用第三方产品来完成。但对于大多数习惯于Excel报表的用户而言,用以上方法生成的报表在格式和功能等方面往往不能满足他们的要求。由于Excel具有自己的对象库,在VisualBasic工程中可以加以引用,通过对Excel使用OLE自动化

2、,可以创建一些外观整洁的报表,然后打印输出。这样实现了VisualBasic应用程序对Excel的控制。本文将针对一个具体实例,阐述基于VB和EXCEL的报表设计及打印过程。1)创建Excel对象Excel对象模型包括了128个不同的对象,从矩形、文本框等简单的对象到透视表,图表等复杂的对象。下面简单介绍一下其中最重要,也是用得最多的五个对象。(1)Application对象Application对象处于Excel对象层次结构的顶层,表示Excel自身的运行环境。(2)Workbook对象Workbook对象直接地处于Application对象的下层,表示一个Excel工作簿文件。(3)Wor

3、ksheet对象Worksheet对象包含于Workbook对象,表示一个Excel工作表。(4)Range对象Range对象包含于Worksheet对象,表示Excel工作表中的一个或多个单元格。(5)Cells对象Cells对象包含于Worksheet对象,表示Excel工作表中的一个单元格。如果要启动一个Excel,使用Workbook和Worksheet对象,下面的代码启动了Excel并创建了一个新的包含一个工作表的工作薄:DimzsbexcelAsExcel.ApplicationSetNewzsbexcel.VisibleTrue如要Excel不可见,可使zsbexcel.Visi

4、bleFalsezsbexcel.SheetsInNewWorkbookSetzsbworkbookzsbexcel.Workbooks.Add2)设置单元格和区域值要设置一张工作表中每个单元格的值,可以使用Worksheet对象的Range属性或Cells属性。Withzsbexcel.ActiveSheet.Cells(1,2).value100.Cells(2,200.Cells(3,=SUM(B1:B2).Range(A3:A9)中国人民解放军End要设置单元格或区域的字体、边框,可以利用Range对象或Cells对象的Borders属性和Font属性:Withobjexcel.Act

5、iveSheet.Range(A2:K9).Borders边框设置.LineStylexlBorderLineStyleContinuous.WeightxlThin.ColorIndex).Font字体设置.Size14.Bold.Italic通过对Excel单元格和区域值的各种设置的深入了解,可以创建各种复杂、美观、满足需要的、具有自己特点的报表。3)预览及打印生成所需要的工作表后,就可以对EXCEL发出预览、打印指令了。zsbexcel.ActiveSheet.PageSetup.OrientationxlPortrait设置打印方向zsbexcel.ActiveSheet.PageSe

6、tup.PaperSizexlPaperA4设置打印纸的打下zsbexcel.Caption打印预览设置预览窗口的标题zsbexcel.ActiveSheet.PrintPreview打印预览zsbexcel.ActiveSheet.PrintOut打印输出通过打印方向、打印纸张大小的设置,不断进行预览,直到满意为止,最终进行打印输出。为了在退出应用程序后EXCEL不提示用户是否保存已修改的文件,需使用如下语句:zsbexcel.DisplayAlertszsbexcel.Quit退出EXCEL如此设计的报表打印是通过EXCEL程序来后台实现的。对于使用者来说,根本看不到具体过程,只看到一张张

7、漂亮的报表轻易地被打印出来了。4)具体实例下面给出一个具体实例,它在window98、VisualBasic6.0、MicrosoftOffice97的环境下调试通过。在VB中启动一个新的StandardEXE工程,在“工程”菜单的“引用”选项下引用ExcelObjectLibrary;然后在Form中添加一个命令按钮cmdExcel;最后在窗体中输入如下代码:DimPrivatecmdExcel_Click()Setzsbexcel.Visiblezsbexcel.SheetsInNewWorkbookSetWithzsbexcel.ActiveSheet.Range(C9).Borders

8、.LineStyle.Weight.ColorIndexEnd.Size.Bold.ItalicEndzsbexcel.ActiveSheet.Rows.HorizontalAlignmentxlVAlignCenter水平居中zsbexcel.ActiveSheet.Rows.VerticalAlignmentxlVAlignCenter垂直居中3).value50zsbexcel.ActiveSheet.PageSetup.OrientationxlPortraitxlLandscapezsbexcel.ActiveSheet.PageSetup.PaperSizexlPaperA4zsb

9、excel.ActiveSheet.PrintOutzsbexcel.DisplayAlertszsbexcel.QuitSetNothing提高EXCEL中VBA的效率方法1:尽量使用VBA原有的属性、方法和Worksheet函数由于Excel对象多达百多个,对象的属性、方法、事件多不胜数,对于初学者来说可能对它们不全部了解,这就产生了编程者经常编写与Excel对象的属性、方法相同功能的VBA代码段,而这些代码段的运行效率显然与Excel对象的属性、方法完成任务的速度相差甚大。例如用Range的属性CurrentRegion来返回Range对象,该对象代表当前区。(当前区指以任意空白行及空白

10、列的组合为边界的区域)。同样功能的VBA代码需数十行。因此编程前应尽可能多地了解Excel对象的属性、方法。充分利用Worksheet函数是提高程序运行速度的极度有效的方法。如求平均工资的例子:ForEachcInWorksheet(1).Range(A1:A1000)Totalvaluec.valueAveragevalue/A1000).Rows.Count而下面代码程序比上面例子快得多:Averagevalue=Application.WorksheetFunction.Average(Worksheets(1).Range(A1:A1000)其它函数如Count,Counta,Coun

11、tif,Match,Lookup等等,都能代替相同功能的VBA程序代码,提高程序的运行速度。方法2:尽量减少使用对象引用,尤其在循环中每一个Excel对象的属性、方法的调用都需要通过OLE接口的一个或多个调用,这些OLE调用都是需要时间的,减少使用对象引用能加快VBA代码的运行。例如1使用With语句。Workbooks(1).Sheets(1).Range(A1:A1000).Font.Name=PayA1000).Font.FontStyle=Bold.则以下语句比上面的快A1000).Font.NamePay.FontStyleBold2使用对象变量。如果你发现一个对象引用被多次使用,则

12、你可以将此对象用Set设置为对象变量,以减少对对象的访问。如:Workbooks(1).Sheets(1).Range(A1).value100Workbooks(1).Sheets(1).Range(A2).value200则以下代码比上面的要快:MySheetWorkbooks(1).Sheets(1)MySheet.Range(A1).valueMySheet.Range(A2).value3在循环中要尽量减少对象的访问。k1000Sheets(Sheet1).SelectCells(k,1).valueCells(1,1).valueThevalueSheets(Sheet1).Sel

13、ectNext方法3:减少对象的激活和选择如果你的通过录制宏来学习VBA的,则你的VBA程序里一定充满了对象的激活和选择,例如Workbooks(XXX).Activate、Sheets(XXX).Select、Range(XXX).Select等,但事实上大多数情况下这些操作不是必需的。Sheets(Sheet3).SelectRange(A1).valueRange(A2).value可改为:Sheets(Sheet3).Range(A1).value.Range(A2).value方法4:关闭屏幕更新如果你的VBA程序前面三条做得比较差,则关闭屏幕更新是提高VBA程序运行速度的最有效的方

14、法,缩短运行时间2/3左右。关闭屏幕更新的方法:Application.ScreenUpdate请不要忘记VBA程序运行结束时再将该值设回来:以上是提高VBA运行效率的比较有效的几种方法本示例重复最近用户界面命令。本示例必须放在宏的第一行。Application.Repeat下例中,变量counter代替了行号。此过程将在单元格区域C1:C20中循环,将所有绝对值小于0.01的数字都设置为0(零)。RoundToZero1()Counter20SetcurCellWorksheets(Sheet1).Cells(Counter,3)Abs(curCell.Value)curCell.Value

15、Counter述过程在单元格区域A1:D10RoundToZero2().Range(D10).CellsAbs(c.Value)c.Value下述过程在工作表上运行时,将在活动单元格周围的区域内循环,将所有绝对值小于RoundToZero3()ActiveCell.CurrentRegion.Cells下述过程在工作的空行写入数据输入()x3从第3行开始DoWhileNot(IsEmpty(Cells(x,2).Value)判断第2列的最后一行(即空行的上一行)+1在最后一行加一行即为空行Loop以下为写入数据Cells(x,Sheets(sheet1).Cells(1,2).Cells(2

16、,).Cells(3,4).Cells(4,).SelectCells(2,1每写一行自动加入序列号sheet2每日结帐()录入发生额Macro30记录的宏2002-12-18Application.ScreenUpdatingFalse关闭屏幕显示IfApplication.InputBox(请输入密码:1234Then此行与倒数3-5行设置密码Msg,Style,Title,X,MyString设置变量Msg!结帐后不能恢复,结帐吗?定义信息。StylevbYesNovbCriticalvbDefaultButton2定义按钮。Title本日结帐!定义标题。XMsgBox(Msg,Titl

17、e)vbYesThen用户按下“是”。CloseCall备份重算所有表Sheets(日报表ActiveSheet.UnprotectSelection.AutoFilterField:=1全部显示余额表Range(e6:g183,i6:k183).Copyn6Selection.PasteSpecialPaste:=xlPasteValuesAndNumberFormats,Operation:_xlNone,SkipBlanks:=False,Transpose:=FalseActiveSheet.ProtectDrawingObjects:=True,Contents:Scenarios:=True,AllowSorting:AllowFiltering:=TrueA2.Copy银行帐F2=xlPasteValues,=xlNone,SkipBlanks:ActiveSheet.ProtectApplication.CutCopyModeFalseIfElse:MsgBox密码错误,即将退出!此行与第2行共同设置密码Application.ScreenUpdatingTrue打开屏幕显示月末结帐()FalseIf以下三行为消息框MyString月末结帐!CloseCallL6:L183.CopyM6N6N6:S183A7:u3000K5.CopyK6

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1