vB中做表格模板
- 格式:docx
- 大小:31.01 KB
- 文档页数:10
VBA自动化报表的排版和样式设计方法在现代商业环境中,报表在决策和分析中扮演着重要角色。
为了提供有效和准确的信息,报表的排版和样式设计至关重要。
VBA(Visual Basic for Applications)是微软Office套件的编程语言,它为自动化报表的排版和样式设计提供了强大的工具。
本文将向您介绍VBA自动化报表的排版和样式设计方法。
1. 排版方法排版是报表设计过程中的关键步骤之一。
通过使用VBA,您可以自动调整报表的布局,使其整齐、易读,并且视觉上吸引人。
下面是一些VBA排版方法的示例:1.1 行高和列宽的调整:使用VBA,您可以准确设置行高和列宽,以适应报表的内容。
通过调整行高和列宽,您可以确保报表中的文本和数据不会显示截断或混乱。
1.2 自动换行:在报表中,文本可能会因为太长而无法在一行中完全显示。
使用VBA的自动换行功能,您可以确保文本在超过单元格宽度时自动换行,并正确显示在连续的行中。
1.3 单元格合并:有时,您可能需要合并单元格以创建更大的标题或合计行。
通过使用VBA,您可以根据特定的条件合并单元格,并创建具有视觉吸引力和易读性的报表。
2. 样式设计方法样式设计是报表中另一个重要的方面。
通过使用VBA,您可以轻松地对文本、数字、背景颜色等元素进行样式设计。
以下是一些VBA样式设计方法的示例:2.1 字体样式:使用VBA,您可以选择并应用报表中的特定字体类型、字号和字形。
通过改变字体样式,您可以突出显示关键信息,提高报表的可读性。
2.2 文本颜色和背景颜色:通过使用VBA,您可以为文本和单元格选择合适的前景色和背景色。
这可以帮助您创建一个具有一致性和专业外观的报表。
2.3 边框和网格线:通过使用VBA,您可以自定义报表中单元格的边框和网格线。
这使您能够突出显示关键数据,并创建清晰的界限。
2.4 数字格式:使用VBA,您可以对报表中的数字进行格式化,如货币、百分比、科学计数法等。
竭诚为您提供优质文档/双击可除vB中做表格模板篇一:办公室文员实用,表格制作方法办公室文员、助理都可以学学,留着迟早用得着!一、输入三个“=”,回车,得到一条双直线;二、输入三个“~”,回车,得到一条波浪线;三、输入三个“*”或“-”或“#”,回车,惊喜多多;在单元格内输入=now()显示日期在单元格内输入=choose(weekday(i3,2),"星期一","星期二","星期三","星期四","星期五","星期六","星期日")显示星期几excel常用函数大全.隔行颜色效果(奇数行颜色):=mod(Row(),2)=12.隔行颜色效果(偶数行颜色):=mod(Row(),2)=03.如果希望设置格式为每3行应用一次底纹,可以使用公式:=mod(Row(),3)=14.如果希望设置奇偶列不同底纹,只要把公式中的Row()改为column()即可,如:=mod(column(),2)5.如果希望设置国际象棋棋盘式底纹(白色+自定义色):=mod(Row()+column(),2)说明:该条件格式的公式用于判断行号与列号之和除以2的余数是否为0。
如果为0,说明行数与列数的奇偶性相同,则填充单元格为指定色,否则就不填充。
在条件格式中,公式结果返回一个数字时,非0数字即为tRue,0和错误值为False。
因此,上面的公式也可以写为:=mod(Row()+column(),2)06.如果希望设置国际象棋棋盘式底纹(自定义色+自定义色):加入样式2:=mod(Row()+column(),2)=0二。
用颜色进行筛选excel20xx可以按单元格颜色、字体颜色或图标进行排序。
如果是excel20xx,需要添加辅助列,用定义名称的方法得到对应的颜色号,然后对辅助列进行排序:颜色单元格在a列,选中b1,插入->名称->定义,输入a,下面输入公式=get.cell(24,$a1),此法可得到字体色的序列号。
Vb对excel操作的实例第一篇:Vb对excel操作的实例Vb对excel操作的实例最近,由于工作关系,我用vb6.0做了一个计算成绩的软件,由于我不会数据库技术,同行对excel应用又比较普遍,所以就用vb6.0操作excel完成了成绩统计的任务。
先说说窗体,很简单,只运用了菜单,由此来调用程序代码。
截图如下:窗体命名为excel操作,共五个一级菜单。
创建表册用来制作所用表格。
计算成绩用来算成绩。
模拟运算用来测试软件,设置了两个子菜单,一个填随机生成的数据。
有了数据就可以计算成绩了,看看效果如何。
测试完了就可以清空数据了,清空成绩册中的基础数据以后再计算一次成绩就基本可以使表册恢复原样了。
其实,我这是多此一举,回头一想,只需要重新创建所用表册就行了。
还画蛇添足了俩菜单:计算器和退出。
代码也贴出来共享一下。
创建表册:一年级: Private Sub ynjkb_Click()Call 建空表(10)Call 工作表命名(1)Call 成绩册(1)Unload excel操作 End Sub 创建表册:二年级:Private Sub enjkb_Click()Call 建空表(10)Call 工作表命名(2)Call 成绩册(2)Unload excel操作 End Sub 三至六年级略了吧。
创建表册:学校总评:Private Sub xxzp_Click()nj(1)= “一年级”: nj(2)= “二年级”: nj(3)= “三年级”: nj(4)= “四年级”: nj(5)= “五年级”: nj(6)= “六年级” Call 建空表(2)'建立积分表Sheets(1).Name = “学校积分” Sheets(2).Name = “积分” Sheets(“学校积分”).Select Range(“a1:i1”).Merge [a1] = “学校积分统计表”: [a2] = “学校”: [a3] = “南村小学”: [a4] = “东风小学”: [a5] = “兴中小学”: [a6] = “尧场小学” nj(1)= “一年级”: nj(2)= “二年级”: nj(3)= “三年级”: nj(4)= “四年级”: nj(5)=“五年级”: nj(6)= “六年级” For i = 1 To 6 Cells(2, i + 1)= nj(i)+ “积分” Next Cells(2, 8)= “均积分”: Cells(2, 9)= “名次” Range([a1], [i6]).Select Selection.HorizontalAlignment = xlCenter Call 表格加线(Range([a2], [i6]))Call 横排(6, 9)ActiveSheet.PageSetup.Orientation = xlLandscape Unload excel操作 End Sub 创建表册:上报:Private Sub shangbao_Click()Call 建空表(2)Sheets(1).Name = “中心校” Sheets(“中心校”).Select Call 上报表(“中心校”)Sheets(2).Name = “普小” Sheets(“普小”).Select Call 上报表(“普小”)Unload excel操作 End Sub 计算成绩:一年级: Private Sub yinianji_Click()Call 打开工作表 Call 算成绩(1)kmb(1)= “语文”: kmb(2)= “数学”: kmb(3)= “英语” Sheets(kmb(1)).Select For i = 1 To 8'记录一年级语文数据With bj(i).xxmc = Cells(2, i + 1).dkjs = Cells(3, i + 1).xkrs = Cells(4, i + 1).xkzf = Cells(5, i + 1).xkjgr = Cells(6, i + 1).xkyxr = Cells(7, i + 1).xkjf = Cells(8, i + 1).bjkm = kmb(1).njxh = 1 End With Next Sheets(kmb(2)).Select For i = 1 To 8'记录一年级数学数据 With bj(i + 8).xxmc = Cells(2, i + 1).dkjs = Cells(3, i + 1).xkrs = Cells(4, i + 1).xkzf = Cells(5, i + 1).xkjgr = Cells(6, i + 1).xkyxr = Cells(7, i + 1).xkjf = Cells(8, i + 1).bjkm = kmb(2).njxh = 1 End With Next Dim hgrs(8)'记录各学校合格人数For i = 1 To 8 Sheets(xx(i)).Select szl = Application.WorksheetFunction.Match(“总分”, Range([a2], [f2]))'总分所在列即合格人数所在列szh = Application.WorksheetFunction.Match(“合格人数”, Range(Cells(2, szl), Cells(80, szl)))'“合格人数”所在行hgrs(i)= Cells(szh + 2, szl)Next '向学校总评表过录一年级数据nj(1)= “一年级”: nj(2)= “二年级”: nj(3)= “三年级”: nj(4)= “四年级”: nj(5)= “五年级”: nj(6)= “六年级” Workbooks.OpenFileName:=ActiveWorkbook.Path & “学校总评.xls” For i = 1 To 16 Wit h Sheets(“积分”)Sheets(“积分”).Select [a1] = “年级”: [a2] = “学科”: [a3] = “学校”: [a4] = “人数”: [a5] = “总分”: [a6] = “及格人数”: [a7] = “优秀人数”: [a8] = “积分”.Cells(1, i + 1)= nj(bj(i).njxh).Cells(2, i + 1)= bj(i).bjkm.Cells(3, i + 1)= bj(i).xxmc.Cells(4, i + 1)= bj(i).xkrs.Cells(5, i + 1)= bj(i).xkzf.Cells(6, i + 1)= bj(i).xkjgr.Cells(7, i + 1)= bj(i).xkyxr.Cells(8, i + 1)= bj(i).xkjf End With Next Workbooks.Open FileName:=ActiveWorkbook.Path & “上报.xls” With Sheets(“中心校”)'过录中心校成绩.Cells(bj(1).njxh * 2 + 2, 3)= bj(1).xkrs + bj(2).xkrs + bj(6).xkrs '语文.Cells(bj(1).njxh * 2 + 2, 4)= bj(1).xkzf + bj(2).xkzf + bj(6).xkzf.Cells(bj(1).njxh * 2 + 2, 5)= Round(.Cells(bj(1).njxh * 2 + 2, 4)/.Cells(bj(1).njxh * 2 + 2, 3), 2).Cells(bj(1).njxh * 2 + 2, 6)= bj(1).xkjgr + bj(2).xkjgr + bj(6).xkjgr.Cells(bj(1).njxh * 2 + 2, 7)= bj(1).xkyxr + bj(2).xkyxr + bj(6).xkyxr.Cells(bj(1).njxh * 2 + 2, 8)= hgrs(1)+ hgrs(2)+ hgrs(6).Cells(bj(1).njxh * 2 + 3, 3)= bj(9).xkrs + bj(10).xkrs + bj(14).xkrs '数学.Cells(bj(1).njxh * 2 + 3, 4)= bj(9).xkzf + bj(10).xkzf + bj(14).xkzf.Cells(bj(1).njxh * 2 + 3, 5)= Round(.Cells(bj(1).njxh * 2 + 3, 4)/.Cells(bj(1).njxh * 2 + 3, 3), 2).Cells(bj(1).njxh * 2 + 3, 6)= bj(9).xkjgr + bj(10).xkjgr + bj(14).xkjgr.Cells(bj(1).njxh * 2 + 3, 7)= bj(9).xkyxr + bj(10).xkyxr + bj(14).xkyxr.Cells(bj(1).njxh * 2 + 3, 8)= hgrs(1)+ hgrs(2)+ hgrs(6)End With With Sheets(“普小”)'过录普小成绩.Cells(bj(1).njxh * 2 + 2, 3)= bj(3).xkrs + bj(4).xkrs + bj(5).xkrs + bj(7).xkrs + bj(8).xkrs '语文.Cells(bj(1).njxh * 2 + 2, 4)= bj(3).xkzf + bj(4).xkzf + bj(5).xkzf + bj(7).xkzf + bj(8).xkzf.Cells(bj(1).njxh * 2 + 2, 5)= Round(.Cells(bj(1).njxh * 2 + 2, 4)/.Cells(bj(1).njxh * 2 + 2, 3),2).Cells(bj(1).njxh * 2 + 2, 6)= bj(3).xkjgr + bj(4).xkjgr + bj(5).xkjgr + bj(7).xkjgr + bj(8).xkjgr.Cells(bj(1).njxh * 2 + 2, 7)= bj(3).xkyxr + bj(4).xkyxr + bj(5).xkyxr + bj(7).xkyxr + bj(8).xkyxr.Cells(bj(1).njxh * 2 + 2, 8)= hgrs(3)+ hgrs(4)+ hgrs(5)+ hgrs(7)+ hgrs(8).Cells(bj(1).njxh * 2 + 3, 3)= bj(11).xkrs + bj(12).xkrs + bj(13).xkrs + bj(15).xkrs + bj(16).xkrs '数学.Cells(bj(1).njxh * 2 + 3, 4)= bj(11).xkzf + bj(12).xkzf + bj(13).xkzf + bj(15).xkzf + bj(16).xkzf.Cells(bj(1).njxh * 2 + 3, 5)= Round(.Cells(bj(1).njxh * 2 + 3, 4)/.Cells(bj(1).njxh * 2 + 3, 3), 2).Cells(bj(1).njxh * 2 + 3, 6)= bj(11).xkjgr + bj(12).xkjgr + bj(13).xkjgr + bj(15).xkjgr + bj(15).xkjgr.Cells(bj(1).njxh * 2 + 3, 7)= bj(11).xkyxr + bj(12).xkyxr + bj(13).xkyxr + bj(15).xkyxr + bj(16).xkyxr.Cells(bj(1).njxh * 2 + 3, 8)= hgrs(3)+ hgrs(4)+ hgrs(5)+ hgrs(7)+ hgrs(8)End With Unload excel操作 End Sub 计算成绩:二年级略。
vba批量生成excel模板摘要:1.VBA 批量生成Excel 模板的概念与需求2.VBA 的基本操作与应用范围3.实现批量生成Excel 模板的步骤与方法4.总结与展望正文:一、VBA 批量生成Excel 模板的概念与需求在日常的办公自动化中,我们常常需要使用Excel 来处理数据。
而对于一些重复性的工作,如生成大量的表格、图表等,我们可以通过VBA(Visual Basic for Applications)编程语言来实现批量生成Excel 模板,从而提高工作效率。
二、VBA 的基本操作与应用范围VBA 是Excel 内置的一种编程语言,可以通过编写代码来实现各种自定义功能。
VBA 的基本操作包括变量声明、条件语句、循环语句、函数调用等。
在Excel 中,VBA 的应用范围广泛,可以用于宏录制、数据分析、图表制作、自动化操作等。
三、实现批量生成Excel 模板的步骤与方法1.打开Excel,按下快捷键“Alt+F11”打开VBA 编辑器。
2.在VBA 编辑器中,点击“插入”菜单,选择“模块”以创建一个新的模块。
3.在新模块的代码窗口中,编写以下代码:```vbaSub 批量生成Excel 模板()Dim i As IntegerDim template As WorkbookDim newWorkbook As Workbook" 设置要生成的Excel 模板的数量For i = 1 T o 10 " 根据需求修改数量" 复制模板文件Set template =Workbooks.Open("C:pathtoyourtemplate.xlsx")Set newWorkbook = Workbooks.Add = "新生成表格" & inewWorkbook.Sheets(1).Range("A1").Value = "复制的表格" & inewWorkbook.SaveAs "C:pathtoyourewgeneratedtable" & i & ".xlsx"newWorkbook.Close False" 将模板文件保存为新的文件名template.SaveAs "C:pathtoyourewgeneratedtable" & i & ".xlsx"template.Close FalseNext iEnd Sub```4.修改代码中的文件路径、模板文件名和新生成表格名称等参数,以符合实际需求。
vb表格设计竭诚为您提供优质文档/双击可除vb表格设计篇一:Vb6.0调用excel制作任意表格Vb6.0调用excel制作任意表格在Vb中制作报表一般来讲有三种方法:1、直接使用Vb6.0中自带的dataReport来做,这种方法有很大的局限性,对于比较规则的报表,但对于比较复杂的报表,比如说一张报表,上部分是人员的工资,下部分是人员的各日的考勤,使用这种方法就无能为力。
2、使用直接的打印方法,即printer.print,这种方法直接向打印机打印,就象过去使用Foxpro似的,需要进行打印机定位,并且在windows下,不同的字符数字所占的宽度也不相同,所以这种方法使用起来非常麻烦。
3、使用微软的excel。
本文重点讨论用excel来制作报表所涉及的问题。
我们用excel做报表时,不仅是将所要的内容填到excel的工作表中,而且还需要填写公式、定义合适的格式(格线、字体、对齐)等。
excel的每张工作表是由若干行、若干列构成的,行列的交叉形成的小格称作单元格。
我们正好可以用这些现成的单元格来做我们的报表的相应的格。
为了程序简单,可以将报表的模板做好,如表头,相应的行高、列宽、字体、对齐调整好(事实上,这些也可以通过程序来实现,只是麻烦点。
),然后利用Vb程序来操纵excel。
这里我们以sqlseRVeR7.0为后台数据。
首先定义好需要的变量,在Vb6.0的菜单“工程\引用”中确保microsoftexcel8.0objectlibrary(在excel2000中,此处为excel9.0)复选框选中。
再向excel工作表中填入数据:dimVbexcelasexcel.applicationdimxlbookasexcel.workbook定义excel工作簿对象dimxlsheetasexcel.worksheet定义excel工作表对象dimrssalaryasnewadodb.Recordset定义记录集rssalary.opensqlstrsalary,cnstring,adopenstatic,adl ockReadonlyrssalary为已计算好的工资数据记录集。
1、定义EXCE寸象变量dim x as excel.application2、VB中,启动EXCELset x=createobject("excel.application")3、新建一个EXCE T L 作簿x.workbooks.add4、选定工作表1set xsheet=xbook.worksheets(1)5、指定单元格,并赋值xsheet.cell(1,1)=ret.fields(0)6 指定EXCE S L 宽xsheet.column(1).columnwidth=107、RANGE函数,选定单元格区域range(cells(1,1),cells(10,20))& 设置EXCEL字体xsheet.range(cells(1,1),cells(10,20))=" 黑体"9、设置EXCE S L 粗体xsheet.range(cells(1,1),cells(10,20)).fontbold=true10、设置EXCEI表格边框xsheet.range(cells(1,1),cells(10,20)).borders.linestyle=xlcontinuous11 、运行时,显示EXCE S L 隐藏EXCELx.visible=true12、保存工作簿xbook save13、退出EXCELx.quit14、交还控制权给EXCELset x=nothing15、打印EXCEL表x.active.window.selectedsheets.printout copies=numcopies16、退出EXCEL寸,不出现保存提示。
x.displayalerts=false17、怎样运用EXCEI公式?x.range("A3").formula= "=max(A1,A2)"18、E XCEL弋码获取技巧打开EXCEL中的工具----宏----录制新宏,然后进行手工操作,结束后把所的宏代码贴进你的VB程序就行。
VBexcel读写创建图表最近用到VB调用EXCEL创建图表,编写程序的过程中遇到一些问题,通过不断的总结终于解决问题。
尤其是利用VB打开EXCEL后不能正常关闭有了一定的认识,现在和各位有需求的朋友分享一下自己小小的经验。
不能正常关闭EXCEL大致有两点,一是打开EXCEL文件后没有释放EXCEL所占用的资源;二是程序中调用EXCEL或读写EXCEL时程序有错;以上两点比较常见,其他的原因目前还没有遇见,也就不多发表意见了。
正常释放EXCEL资源的语句顺序见示例最后一段程序,我调试过可以正常退出EXCEL。
通常不能退出EXCEL的问题中,提示的错误信息大多为实时错误 "1004 " 对象'Sheets'的方法 '_global'失败。
通常情况下,我们可以通过录制EXCEL宏来实现代码的翻译,但此时要相当小心,在将宏程序移植到自己的程序时一定要注意,那就是在录制的程序的语句前加上EXCEL的类声明,如ActiveChart.ChartType = xlColumnClustered为生成的语句,在调用时一定更新为xlApp.ActiveChart.ChartType = xlColumnClustered,这样可以保证每次成功退出EXCEL。
还有就是RANGE功能,使用不当也经常引起不能正常退出EXCEL,在利用其选取多个单元格时,其写法应足够小心。
如 xlApp.ActiveChart.SetSourceData Source:=xlApp.Sheets("Sheet1").Range("A1:G1"), PlotBy:= _ xlRows,若不加xlApp,会导致第一次可以正常退出,第二次出现异常不能正常退出EXCEL。
另外一种写法,如xlApp.Sheets("Sheet1").Range(cells(1,1),cells(20,20)),在这条语句运行后第一次正常,第二次就会引起异常,正确的写法应为xlApp.Sheets("Sheet1").Range(Sheets.cells(1,1),Sheets.cells(20,20)), 按照以上的说明基本上可以正常调用EXCEL文件。
VB操作Excel报表(实例、图例、源码、注释)VB操作Excel报表(实例、图例、源码、注释)用Excel报表非常方便,而用VB操作Excel更能延长VB的功能范围。
对于重复生成的表格更是非常方便。
字体,行高,列宽,合并单元格,排版等功能都有。
供大家学习研究。
VB中使用Excel控件要先引用哦。
要不你错都不知道哪错了。
郁闷吧!一、报表预览如下1、无内容报表如下:2、填表后预览如下:测试内容,随便填的。
二、界面预览如下:打印记录按钮为Command3三、源码如下:Private Sub Command3_Click()声明一个新的Excel对象Set winkexcel = New Excel.Application该对象可见winkexcel.Visible = True选择第一张表为操作表winkexcel.SheetsInNewWorkbook = 1表添加内容Set winkworkbook = winkexcel.Workbooks.Add设置指定单元格行高列宽Set xlsheet = winkworkbook.Worksheets(1)xlsheet.Rows(1).RowHeight = 45xlsheet.Rows(2).RowHeight = 33xlsheet.Rows(3).RowHeight = 33xlsheet.Rows(4).RowHeight = 33xlsheet.Rows(5).RowHeight = 33xlsheet.Rows(6).RowHeight = 300xlsheet.Rows(7).RowHeight = 100xlsheet.Rows(8).RowHeight = 45xlsheet.Rows(9).RowHeight = 45xlsheet.Rows(10).RowHeight = 26xlsheet.Columns(1).ColumnWidth = 14xlsheet.Columns(2).ColumnWidth = 24xlsheet.Columns(3).ColumnWidth = 14xlsheet.Columns(4).ColumnWidth = 24设置表格内容的对齐方式winkexcel.ActiveSheet.Rows.HorizontalAlignment = xlVAlignCenter'水平居中winkexcel.ActiveSheet.Rows.V erticalAlignment = xlV AlignCenter'垂直居中With winkexcel.ActiveSheet.Range("A1:D1")'合并单元格.MergeEnd WithWith winkexcel.ActiveSheet.Range("B6:D6")'合并单元格.MergeEnd WithWith winkexcel.ActiveSheet.Range("B7:D7")'合并单元格.MergeEnd With画边框线,细线,黑。
VB操作EXCEL表的常用方法VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。
因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报表功能。
但由于VB与EXCEL由于分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题。
一、 VB读写EXCEL表:VB本身提自动化功能可以读写EXCEL表,其方法如下:1、在工程中引用Microsoft Excel类型库:从'工程'菜单中选择'引用'栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择'确定'。
表示在工程中要引用EXCEL类型库。
2、在通用对象的声明过程中定义EXCEL对象:Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkBookDim xlSheet As Excel.Worksheet3、在程序中操作EXCEL表常用命令:Set xlApp = CreateObject('Excel.Application') '创建EXCEL对象Set xlBook = xlApp.Workbooks.Open('文件名') '打开已经存在的EXCEL工件簿文件xlApp.Visible = True '设置EXCEL对象可见(或不可见)Set xlSheet = xlBook.Worksheets('表名') '设置活动工作表xlApp.Cells(row, col) =值 '给单元格(row,col)赋值XLApp.Cells(i, 1).Interior.ColorIndex = i'设计单元格颜色i=1--56xlSheet.PrintOut '打印工作表xlBook.Close (True) '关闭工作簿xlApp.Quit '结束EXCEL对象Set xlApp = Nothing '释放xlApp对象xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏自己用代码就可以获取颜色列表了Sub yansecode()For i = 1 To 56XlApp.Cells(i, 1) = ixlapp.Cells(i, 1).Interior.ColorIndex = iNextEnd Sub4、在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。
VB控制EXCEL进行报表设计及打印VB控制EXCEL进行报表设计及打印在工控程序的开发中,经常涉及到数据信息的分析、加工,最终还需把统计结果形成各种形式的报表打印输出。
在Visual Basic中制作报表,通常是用数据环境设计器(DataEnvironment Designer)与数据报表设计器(Data Report Designer),或者使用第三方产品来完成。
但对于大多数习惯于Excel报表的用户而言,用以上方法生成的报表在格式和功能等方面往往不能满足他们的要求。
由于Excel具有自己的对象库,在Visual Basic工程中可以加以引用,通过对Excel使用OLE自动化,可以创建一些外观整洁的报表,然后打印输出。
这样实现了Visual Basi应用程序对Excel的控制。
本文将针对一个具体实例,阐述基于VB和EXCEL的报表设计及打印过程。
1)创建Excel对象Excel对象模型包括了128个不同的对象,从矩形、文本框等简单的对象到透视表,图表等复杂的对象。
下面简单介绍一下其中最重要,也是用得最多的五个对象。
(1)Application对象:Application对象处于Excel对象层次结构的顶层,表示Excel自身的运行环境。
(2)Workbook对象:Workbook对象直接地处于Application 对象的下层,表示一个Excel工作薄文件。
(3)Worksheet对象:Worksheet对象包含于Workbook对象,表示一个Excel工作表。
(4)Range对象:Range对象包含于Worksheet对象,表示Excel工作表中的一个或多个单元格。
(5)Cells对象:Cells对象包含于Worksheet对象,表示Excel 工作表中的一个单元格。
如果要启动一个Excel,使用Workbook和Worksheet对象,下面的代码启动了Excel并创建了一个新的包含一个工作表的工作薄:Dim zsbexcel As Excel.ApplicationSet zsbexcel = New Excel.Applicationzsbexcel.Visible = True如要Excel不可见,可使zsbexcel.V isible = Falsezsbexcel.SheetsInNewWorkbook = 1Set zsbworkbook = zsbexcel.Workbooks.Add2)设置单元格和区域值要设置一张工作表中每个单元格的值,可以使用Worksheet对象的Range属性或Cells 属性。
竭诚为您提供优质文档/双击可除
vB中做表格模板
篇一:办公室文员实用,表格制作方法
办公室文员、助理都可以学学,留着迟早用得着!
一、输入三个“=”,回车,得到一条双直线;
二、输入三个“~”,回车,得到一条波浪线;
三、输入三个“*”或“-”或“#”,回车,惊喜多多;
在单元格内输入=now()显示日期
在单元格内输入=choose(weekday(i3,2),"星期一","
星期二","星期三","星期四","星期五","星期六","星期日")显示星期几
excel常用函数大全
.隔行颜色效果(奇数行颜色):
=mod(Row(),2)=1
2.隔行颜色效果(偶数行颜色):
=mod(Row(),2)=0
3.如果希望设置格式为每3行应用一次底纹,可以使用
公式:
=mod(Row(),3)=1
4.如果希望设置奇偶列不同底纹,只要把公式中的Row()改为column()即可,如:=mod(column(),2)
5.如果希望设置国际象棋棋盘式底纹(白色+自定义色):
=mod(Row()+column(),2)
说明:该条件格式的公式用于判断行号与列号之和除以2的余数是否为0。
如果为0,说明行数与列数的奇偶性相同,则填充单元格为指定色,否则就不填充。
在条件格式中,公式结果返回一个数字时,非0数字即为tRue,0和错误值为False。
因此,上面的公式也可以写为:
=mod(Row()+column(),2)0
6.如果希望设置国际象棋棋盘式底纹(自定义色+自定义色):
加入样式2:
=mod(Row()+column(),2)=0
二。
用颜色进行筛选
excel20xx可以按单元格颜色、字体颜色或图标进行排序。
如果是excel20xx,需要添加辅助列,用定义名称的方法得到对应的颜色号,然后对辅助列进行排序:
颜色单元格在a列,选中b1,插入->名称->定义,输入a,下面输入公式=get.cell(24,$a1),此法可得到字体色的序列号。
b1输入=a将公式向下复制到相应行。
将全表按b列排序即可。
若是想获得背景色序列号,将24改成63即可。
斜表头的做法:
方法一:
做法;
1、选中单元格,点格式,单元格,边框,先选中细实线型(见图二),再点斜线(见图三),再选中稍粗点的实线(见图四),再点外边框的图标(见图五),这样边框就画成了;
2、再选中该单元格,点格式,对齐,水平对齐选中常规或靠左;垂直对齐,选中分散对齐(上下位置不紧张时,选居中更好);
3、输入班级,按alt+回车;再输入姓名;
4、分别在姓名和班级前面加空格,使字放在适当位置。
方法二:
图一
做法:
1、选中单元格,点格式,单元格,边框,先选中细实线型(见图二),再点斜线(见图三),再选中稍粗点的实线(见图四),再点外边框的图标(见图五),这样边框就画成了;
2、再选中该单元格,点格式,对齐,水平对齐及垂直对齐均选中分散对齐(上下位置不紧张时,选居中更好);
3、输入“姓名班级”,把字号选为18号;
4、选中“姓名”,右键,设置单元格格式,选中下标;选中“班级”,右健,设置单元格格式,选中上标;
方法三:
做法:
1、选中单元格,点常用工具栏中的边框工具(见图七)而加上外框;
2、点视图/工具栏/绘图,点一下绘图工具栏中的直线工具(见图八,点击后光标会变成细十字形)后再在单元格里用带十字的光标画第一条斜线,然后再点一次直线工具,再画第二条斜线;直线的长短或位置不合要求,可单击该线段,按住左键即可拖动线段移动位置,再把光标放到两端的园圈上按住左键拖动即可调整线段长度和方向;
3、选中单元格,点格式/单元格/对齐,水平对齐和垂直对齐都选为两端对齐;
4、在单元格里输入“学科级别年份”,把光标放到“学科”字后面,按alt+enteR,再把光标放到“级”字后面,按alt+enteR,再把光标放到“别”字后面,按alt+enteR;
5、在“学科”前面、“别”前面和“年份”后面加空格,把学科、级别和年份调整到适当的位置;
6、调整单元格的高和宽及斜线的位置,使表头更好看些。
做法:
1、选中单元格,点常用工具栏中的边框工具(见图十)而加上外框;
2、点视图/工具栏/绘图,点一下绘图工具栏中的直线
工具(见图十一,点击后光标会变成细十字形)后再在单元格里用带十字的光标画第一条斜线,然后再点一次直线工具,再画第二条斜线;
3、点视图/工具栏/绘图工具栏中的“文本框”(横排的)工具(见图十二),在任意单元格中画一文本框,右键其虚
线边框中的小园圈,在右键菜单中点“设置文本框格式”,
出现下列窗口(见图十四),点其中的“颜色与线条”选项卡,在“填充”和“线条”的颜色中,均选中无色,确定。
并在其中输入“学科”:
4、移动光标到虚线边框上,使光标变成十字四箭头形状,点右键,点复制,再到别的地方粘贴三个这样的文本框;分别在那三个文本框里面输入“级”、“别”和“年份”;把
光标移到虚线边框右下角的园圈中,此时光标变成左高右低的斜的双向箭头,按住左键将边框缩到最小(见图十三);
5、移动光标到虚线边框上,使光标变成十字四箭头形状,按住左键把它们拖到适当的位置;。