VB借助EXCEL实现表格设计

合集下载

VB中巧用Excel实现报表设计

VB中巧用Excel实现报表设计

VB中巧用Excel实现报表设计摘要:本文结合实例介绍了在VB中利用Excel实现复制报表的设计的方法,该方法把VB强大数据库管理与Excel灵活的报表设计有机结合起来,简化了编程,提高了程序的便利性。

关键词: Visual Basic Excel 报表引言在数据库应用中,数据报表是非常重要的部分,Visual Basic中的数据报表器可以很方便地创建数据报表,但由数据报表器设计的表格样式单一,功能较少。

微软公司的Excel软件想必大家都很熟悉,它那强大的报表设计功能和简单的操作界面,给大家留下了很深的印象。

若能把VB中的数据输出至Excel格式的报表中,使得VB的数据库管理功能与Excel的报表设计功能结合起来,将大大方便普通用户的使用。

本文借助一个实例详细介绍VB中如何利用Excel进行报表设计的方法。

1.Excel对象借助Excel对象,可以很方便地在VB数据库程序中生成Excel报表。

应用程序的最终用户在Excel环境中对报表做进一步的处理,如格式修改、打印预览、打印及保存等。

Excel对象封装了Microsoft Excel的全部对象,我们主要使用其中的五种对象,详细介绍如下。

Application对象:表示Excel应用对象,可以控制Excel应用程序的外观或功能[1],是访问Excel其他对象的切入点。

Workbook对象:表示Excel中的工作簿,即对应一个Excel文件,可以实现对Excel工作簿的各种控制[1]。

Worksheet对象:表示Excel中的工作表,可以实现对Excel工作表的各种控制[1]。

Range对象:表示Excel中的区间,例如可以代表Excel中的某一单元格、某一行、某一列、某一选定区域[1]。

Cells对象:表示Excel中的一个单元格[2],通过该对象读取Excel中的数据或将数据写入Excel中。

2.操作步骤在VB中借助Excel生成报表,需完成如下工作:(1)在Excel中制作报表模板,设计报表标题、表头的样式,包括字体字号、边框等等。

VB操作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 = 300 xlsheet.Rows(7).RowHeight = 100 xlsheet.Rows(8).RowHeight = 45xlsheet.Rows(9).RowHeight = 45xlsheet.Rows(10).RowHeight = 26 xlsheet.Columns(1).ColumnWidth = 14 xlsheet.Columns(2).ColumnWidth = 24 xlsheet.Columns(3).ColumnWidth = 14 xlsheet.Columns(4).ColumnWidth = 24设置表格内容的对齐方式winkexcel.ActiveSheet.Rows.HorizontalAlignment = xlVAlignCenter'水平居中winkexcel.ActiveSheet.Rows.VerticalAlignment = xlVAlignCenter'垂直居中With winkexcel.ActiveSheet.Range("A1:D1")'合并单元格.MergeEnd WithWith winkexcel.ActiveSheet.Range("B6:D6")'合并单元格.MergeEnd WithWith winkexcel.ActiveSheet.Range("B7:D7")'合并单元格.MergeEnd With画边框线,细线,黑。

Excel 通过VBA 制表

Excel 通过VBA 制表

Excel 通过VBA 制作表格:1OBJ = "<table class=MsoTableGrid Border=2" OBJ = OBJ & "<td>" & "Material"OBJ = OBJ & "<td>" & "Description"OBJ = OBJ & "<td>" & "Quantity"OBJ = OBJ & "<td>" & "Commnent"OBJ = OBJ & "</table>"OBJ = OBJ & "<br>Best regards,<br> Ekman" 以上语句输出如下:Best regards,Ekman如果没有OBJ = OBJ & "</table>" 会是什么样?把后面的信息“Best regards, Ekman 也包含在表格里。

所以OBJ = OBJ & "</table> 可以定义表格结束。

如果 OBJ = "<table class=MsoTableGrid Border=2" 的“2“改为”23“会怎么样? 如下图,宽度增加。

2obj = "<table class=msotablegrid border=1 cellspacing =43 >"Best regards,Ekman3obj = "<table class=msotablegrid border=1 cellspacing =43 cellpadding=43 >"Best regards,EkmanCellspacing 决定表格边框的宽度。

用VB操作Excel(VB6.0)(整理)

用VB操作Excel(VB6.0)(整理)

用V B操作E x c e l(V B6.0)(整理) 全面控制Excel:首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application?1)显示当前窗口:? ExcelID.Visible:=True;2)更改Excel标题栏:? ExcelID.Caption:='应用程序调用MicrosoftExcel';3)添加新工作簿:4)打开已存在的工作簿:5)设置第2个工作表为活动工作表:? ExcelID.WorkSheets[2].Activate;或ExcelID.WorkSheets['Sheet2'].Activate;6)给单元格赋值:? ExcelID.Cells[1,4].Value:='第一行第四列';7)设置指定列的宽度(单位:字符个数),以第一列为例:8)设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:9)在第8行之前插入分页符:? ExcelID.WorkSheets[1].Rows[8].PageBreak:=1;10)在第8列之前删除分页符:11)指定边框线宽度:? 1-左 2-右 3-顶4-底 5-斜(\) 6-斜(/)12)清除第一行第四列单元格公式:13)设置第一行字体属性:14)进行页面设置:a.页眉:b.页脚:c.页眉到顶端边距2cm:d.页脚到底端边距3cm:e.顶边距2cm:f.底边距2cm:g.左边距2cm:h.右边距2cm:i.页面水平居中:j.页面垂直居中:k.打印单元格网线:15)拷贝操作:a.拷贝整个工作表:b.拷贝指定区域:c.从A1位置开始粘贴:d.从文件尾部开始粘贴:16)插入一行或一列:17)删除一行或一列:18)打印预览工作表:19)打印输出工作表:20)工作表保存:? Endif21)工作表另存为:? ExcelID.SaveAs('C:\Excel\Demo1.xls');22)放弃存盘:23)关闭工作簿:24)退出Excel:? ExcelID.Quit;25)设置工作表密码:26)EXCEL的显示方式为最大化ndowState=xlMaximized?27)工作薄显示方式为最大化28)设置打开默认工作薄数量? ExcelID.SheetsInNewWorkbook=329)'关闭时是否提示保存(true保存;false不保存) ? ExcelID.DisplayAlerts=False30)设置拆分窗口,及固定行位置31)设置打印时固定打印内容32)设置打印标题33)设置显示方式(分页方式显示)34)设置显示比例35)让Excel响应DDE请求用VB操作EXCEL示例代码? Private Sub Command3_Click()? On Error GoTo err1? Dim i As Long? Dim j As Long? Dim objExl As Excel.Application '声明对象变量? Me.MousePointer=11 '改变鼠标样式? Set objExl=New Excel.Application'初始化对象变量? objExl.SheetsInNewWorkbook=1? '将新建的工作薄数量设为1?? objExl.Sheets("book1").Select? '选中工作薄<book1>? For i=1 To 50'循环写入数据? For j=1 To 5? If i=1 Then??? objExl.Cells(i,j)="E"&i&j? Else??? objExl.Cells(i,j)=i&j? EndIf? Next? Next? objExl.Rows("1:1").Select '选中第一行? Format(Now,"yyyy年mm月dd日hh:MM:ss")? '给工作表加密码? Contents:=True,Scenarios:=True? objExl.Visible=True? '使EXCEL可见? objExl.SheetsInNewWorkbook=3? '将默认新工作薄数量改回3个? ? Set objExl=Nothing'清除对象? Me.MousePointer=0 '修改鼠标? ExitSub? err1:??? objExl.SheetsInNewWorkbook=3?? objExl.DisplayAlerts=False? '关闭时不提示保存? objExl.Quit'关闭EXCEL? objExl.DisplayAlerts=True '关闭时提示保存? Set objExl=Nothing? Me.MousePointer=0? End Sub。

ExcelVBA编程与图表制作如何利用VBA进行图表的自动生成和美化

ExcelVBA编程与图表制作如何利用VBA进行图表的自动生成和美化

ExcelVBA编程与图表制作如何利用VBA进行图表的自动生成和美化Excel VBA编程与图表制作如何利用VBA进行图表的自动生成和美化在Excel中,图表是一种直观展示数据的形式,它能够帮助用户更清晰地理解数据的含义和趋势。

而VBA(Visual Basic for Applications)作为Excel的编程语言,可以让我们更加灵活地操作和处理数据,进而实现图表的自动生成和美化。

本文将介绍如何利用VBA编程进行图表的自动生成和美化。

一、自动生成图表自动生成图表的主要目的是为了提高工作效率,将重复性的操作变得简单和便捷。

通过VBA编程,我们可以实现一键生成图表的功能。

首先,打开Excel,并按下ALT+F11快捷键,进入VBA编辑器。

在VBA编辑器中,选择插入→模块,即可新建一个VBA模块。

然后,我们可以编写VBA代码来实现图表的自动生成。

以下是一个简单的示例代码:```Sub CreateChart()Dim chartSheet As WorksheetDim sheet As WorksheetDim chartObj As ChartObjectDim rng As Range'创建一个新的图表工作表Set chartSheet =ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sh eets.Count)) = "Chart Sheet"'选择需要生成图表的原始数据所在的工作表Set sheet = ThisWorkbook.Sheets("Data Sheet")'选择需要生成图表的原始数据范围Set rng = sheet.Range("A1:B10")'在图表工作表上插入一个图表对象Set chartObj = chartSheet.ChartObjects.Add(Left:=10, Width:=375, Top:=30, Height:=225)'将原始数据范围设置为图表的源数据chartObj.Chart.SetSourceData rng'设置图表的类型为柱形图chartObj.Chart.ChartType = xlColumnClusteredEnd Sub```以上代码中,我们首先创建一个新的图表工作表,然后选择需要生成图表的原始数据所在的工作表和对应的数据范围。

excel表格中vb应用实例1

excel表格中vb应用实例1

VB是常用‎的应用软件‎开发工具之‎一,由于VB的‎报表功能有‎限,而且一但报‎表格式发生‎变化,就得相应修‎改程序,给应用软件‎的维护工作‎带来极大的‎不便。

因此有很多‎程序员现在‎已经充分利‎用E XEC‎L的强大报‎表功来实现‎报表功能。

但由于VB‎与E XCE‎L由于分别‎属于不同的‎应用系统,如何把它们‎有机地结合‎在一起,是一个值得‎我们研究的‎课题。

一、 VB读写E‎X C EL表‎:VB本身提‎自动化功能‎可以读写E‎X CEL表‎,其方法如下‎:1、在工程中引‎用M icr‎o s oft‎Excel‎类型库:从"工程"菜单中选择‎"引用"栏;选择Mic‎r osof‎t Excel‎9.0 Objec‎t Libra‎r y(EXCEL‎2000),然后选择"确定"。

表示在工程‎中要引用E‎X CEL类‎型库。

2、在通用对象‎的声明过程‎中定义EX‎C EL对象‎:Dim xlApp‎As Excel‎.Appli‎c atio‎nDim xlBoo‎k As Excel‎.W orkB‎o o kDim xlShe‎e t As Excel‎.Works‎h eet3、在程序中操‎作E XCE‎L表常用命‎令:Set xlApp‎= Creat‎e Obje‎c t("Excel‎.A ppli‎c atio‎n") '创建EXC‎E L对象Set xlBoo‎k = xlApp‎.Workb‎o oks.Open("文件名") '打开已经存‎在的E XC‎E L工件簿‎文件xlApp‎.V isib‎l e = True '设置EXC‎E L对象可‎见(或不可见)Set xlShe‎e t = xlBoo‎k.Works‎h eets‎("表名") '设置活动工‎作表xlApp‎.C ells‎(row, col) =值 '给单元格(row,col)赋值XLApp‎.C ells‎(i, 1).Inter‎i or.Color‎I ndex‎= i'设计单元格‎颜色i=1--56xlShe‎e t.Print‎O u t '打印工作表‎xlBoo‎k.Close‎(True) '关闭工作簿‎xlApp‎.Q uit '结束EXC‎E L对象Set xlApp‎= Nothi‎n g '释放xlA‎p p对象xlBoo‎k.RunAu‎t oMac‎r os (xlAut‎o Open‎) '运行EXC‎E L启动宏‎xlBoo‎k.RunAu‎t oMac‎r os (xlAut‎o Clos‎e) '运行EXC‎E L关闭宏‎自己用代码‎就可以获取‎颜色列表了‎Sub yanse‎c ode()For i = 1 To 56XlApp‎.C ells‎(i, 1) = ixlapp‎.C ells‎(i, 1).Inter‎i or.Color‎I ndex‎= iNextEnd Sub4、在运用以上‎V B命令操‎作E X CE‎L表时,除非设置E‎X CEL对‎象不可见,否则VB程‎序可继续执‎行其它操作‎,也能够关闭‎E X CEL‎,同时也可对‎E X CEL‎进行操作。

Vb对excel操作的实例

Vb对excel操作的实例

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图表操作技巧

VBA中的Excel图表操作技巧

VBA中的Excel图表操作技巧在Excel中,图表是一种非常有用的数据可视化工具,能够帮助我们更好地展示和分析数据。

而在VBA中,我们可以通过编程来操作和控制Excel 中的图表,从而实现更多的定制化需求。

本文将介绍一些常用的VBA中的Excel图表操作技巧,包括创建图表,设置图表属性,以及对图表进行格式化等。

一、创建图表在VBA中,创建图表的方法有很多种,可以根据数据的类型和需求选择合适的图表类型。

下面是一个创建柱状图的示例代码:```VBASub CreateColumnChart()Dim ws As WorksheetDim cht As ChartSet ws = ThisWorkbook.Worksheets("Sheet1")Set cht = ws.Shapes.AddChart.ChartWith cht.ChartType = xlColumnClustered.SetSourceData Source:=ws.Range("A1:B5").Location Where:=xlLocationAsObject, Name:="Sheet1".HasTitle = True.ChartTitle.Text = "Sales by Month"End WithEnd Sub```上述代码中,首先我们通过引用工作表对象和图表对象,然后使用`AddChart.Chart`方法来创建图表。

接着,我们通过设置`ChartType`属性来指定图表的类型,这里是柱状图。

然后使用`SetSourceData`方法来设置图表的数据源范围,并使用`Location`方法来指定图表的位置。

最后,我们通过`HasTitle`和`ChartTitle.Text`属性来设置图表的标题。

二、设置图表属性在VBA中,我们可以通过操作图表对象的属性来实现对图表的定制化设置。

VB系统中基于Excel的报表的设计与实现——以工程计量结算单管理系统为例

VB系统中基于Excel的报表的设计与实现——以工程计量结算单管理系统为例
Y ” 项。
3 报表 功能 的具体 实现
3 . 1 制作 E x c e l 报 表模 板 文件
本 系统 中 , 首 先根据 用 户提供 的纸质 报表 , 提前 制作了所有 E x c e l 报 表 模 板 文件 。之 后 , 在 程 序 中 编写相 应代码 向指定 单 元 格 输 出数 据 , 以此 实 现报 表 数据 的 自 动 生 成 。此 外 , 通 过 设 置模 板 文 件指 定 单 元格 的属性 , 系统 中实现 了不用 编写代 码 , 而 自动
若要在 V B 中操 控 E x c e l 文件 , 首 先 应 当 引 用 E x c e l 类 型库 。根 据 计 算 机 上 安 装 的 E x c e l 软件 的
X . Q u i t
版本的不同, 类型库的版本也不一样 , 因为本系统 中 使 用 的是 E x c e l 的2 0 0 3 版本 , 因此类 型 库 的版 本 为
P i r v a t e S u b c md Ok

输 出“ 1 2 3 ” 的代码为 : D i m X A s E x c e 1 . A p p l i c a t i o n声 明 了一 个 A p p l i —
c a t i o n对象
S e t X:C r e a t e O b j e c t ( ” E x c e 1 . a p p l i c a t i o n ” )创 建 了一 个 A p p l i c a t i o n 对 象
S e t x =C r e a t e O b j e c t ( ” E x c e 1 . a p p l i c a t i o n ” )
S e t x l B o o k = x . Wo r k b o o k s . O p e n f A p p . P a t h +

VBexcel读写创建图表

VBexcel读写创建图表

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

VB操作Excel在工程中引用Microsoft Excel类型库从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然’后选择"确定"。

‘打开Excel文件Dim xlApp As Excel.Application '定义EXCEL类Dim xlBook As Excel.Workbook '定义工件簿类Dim xlsheet As Excel.Worksheet '定义工作表类Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类Set xlBook = + "\银行导出表.xls") '打开EXCEL工作簿Set xlsheet = xlBook.Worksheets(1) '打开EXCEL工作表xlsheet.Activate '激活工作表‘对EXCEL的各项操作‘获得数据的行数‘在第一列前增加一行xlsheet.Columns(1).Insert‘关闭Excel文件xlBook.Close (True) '关闭EXCEL工作簿xlApp.Quit '关闭EXCELSet xlApp = Nothing '释放EXCEL对象VB中操作Excel的一般做法(读取)1、定义Excel操作变量Dim objExcelFile As Excel.ApplicationDim objWorkBook As Excel.WorkbookDim objImportSheet As Excel.Worksheet2、打开Excel进程,并打开目标Excel文件Set objExcelFile = New Excel.ApplicationobjExcelFile.DisplayAlerts = FalseSet objWorkBook =Set objImportSheet = objWorkBook.Sheets(1)3、获取Excel有效区域的行和列数intLastColNum =intLastRowNum =4、逐行读取Excel中数据由于前两行为Header部分,所以需要从第三行读取如果第1到第10个单元格的值均为空或空格,则视为空行For intCountI = 3 To intLastRowNum''Check if Empty Data RowblnNullRow = TrueFor intI = 1 To 10If Trim$(objImportSheet.Cells(intCountI, intI).Value) <> "" Then blnNullRow = FalseEnd IfNext intI若不是空行,则进行读取动作,否则继续向后遍历Excel中的行If blnNullRow = False Then获取单元格中的数据,做有效性Check,并将合法数据创建为实体存入对象数组中objImportSheet.Cells(intCountI, 1).Value……End IfNext intCountI5、退出Excel进程,并关闭Excel相关操作对象objExcelFile.QuitSet objWorkBook = NothingSet objImportSheet = NothingSet objExcelFile = Nothingvb操作Excel*************一个标准的Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetSet xlApp = CreateObject("Excel.Application") '创建EXCEL对象Set xlBook = "d:\vbExcel.xls") '打开已经存在的EXCEL工件簿文件xlApp.Visible = True '设置EXCEL对象可见(或不可见)Set xlSheet = xlBook.Worksheets("Sheet1") '设置活动工作表'xlSheet.Cells(Row, Col) = 值 '给单元格(row,col)赋值xlSheet.Cells(5, 5) = "Neok"xlSheet.PrintOut '打印工作表xlBook.Close (True) '关闭工作簿xlApp.Quit '结束EXCEL对象Set xlApp = Nothing '释放xlApp对象xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏**********************启动 ExcelDim objExcel As Excel.ApplicationSet objExcel = CreateObject("Excel.Application") objExcel.Visible = True'设置EXCEL对象可见(或不可见)创建有一个工作表的工作簿Dim objWorkBook As Excel.WorkBookobjExcel.SheetsInNewWorkbook = 1Set objWorkbook =打开已经存在的 EXCEL 工件簿文件Set objWorkbook="文件名")设置活动工作表Dim objSheet As Excel.WorksheetSet objSheet = objExcel.Worksheets("表名")给单元格(row,col)赋值objSheet.Cells(row, col) =值给合并的单元格赋值,如(A3:A9)objSheet.Range("A3:A9") =值运行 EXCEL 宏objWorkbook.RunAutoMacros ("宏名")插入一行objSheet.Rows("1:1").Insert Shift:=xlDown保存 EXCEL 文件objWorkbook.Save另存为objWorkbook.SaveAs("文件名")关闭工作簿objWorkbook.Close (True)结束 EXCEL 对象objExcel.Quit如果要求在退出应用程序后EXCEL不提示用户是否保存已修改的文件,则可使用如下语句:objExcel.DisplayAlerts = FalseobjExcel.QuitobjExcel.DisplayAlerts = True释放 objExcel 对象Set objExcel = Nothing注意:在工程中运用 Excel 对象模型,必须引用 Excel Object Library工程--> 引用加入 Excel Object Library在 VB 中操作 EXCEL 对象,如为可见,在操作中手式关闭 EXCEL,而 VB 程序无法知道,如果此时使用 EXCEL 对象,则VB程序会产生错误。

vb利用excel控件简单报表

vb利用excel控件简单报表
页 脚:位于报表的最下部分,用于说明报表的其它信息,例如:单位负责人、部门负责人、制表人等信息。
横表头:也叫宾栏,位于报表的横方向的表头,它是统计的约束条件,也可能是描述信息。对于统计表来说横表头是可以分层的,并且上层的条件对它下面各层都起作用。
竖表头:也叫甲栏,报表竖方向的表头,它在统计表中与横表头起相同的作用,也是统计的约束性条件,也可能是描述性信息。在分层结构中,上层的条件对它下面各层都起作用。
④Access2000的报表解决方案
A、在Excel中做一个模板
在用Visual Basic生成Excel报表之前,应先按照用户的要求在Excel中做好一个模板,包括页眉,页脚,表头等等。
B、在VB中创建Excel对象,打开Excel文件
和其它的第三方控件一样,使用之前必须引用或作为部件导入。要在VB中创建和作用Excel对象,就必须先引用Microsoft Excel 9.0 object library。然后我们就可以在VB的编程操作Excel对象了。
Set xlApp = New Excel.Application
'创建Application对象
Set xlApp = CreateObject("Excel.Application")
'隐藏被VB打开的Excel程序
xlApp.Visible = False
'打开工作簿,excelFile为一个EXCEL报表文件
'定义Excel的Workbook对象,Workbook对象相当于Excel文件
Dim xlbook As Excel.Workbook
'定义Excel的Worksheet对象,Worksheet对象相当于Excel文件中的一个表

VBA如何操作Excel中的图表

VBA如何操作Excel中的图表

VBA如何操作Excel中的图表在 Excel 中,图表可以帮助我们更直观地展示和分析数据。

而使用 VBA 宏语言,可以进一步自动化和灵活地操作 Excel 中的图表,提高工作效率。

本文将介绍如何使用 VBA 操作 Excel 中的图表。

一、创建图表要使用 VBA 创建一个图表,首先需要确定图表的数据源和类型。

1.1 数据源在 VBA 中,可以通过指定数据范围或使用已存在的命名区域作为图表的数据源。

指定数据范围的方法如下:```vbaDim dataRange As RangeSet dataRange = ThisWorkbook.Worksheets("Sheet1").Range("A1:B10")```将以上代码中的 "Sheet1" 替换成实际数据所在的工作表名称,"A1:B10" 替换成实际的数据范围。

使用命名区域的方法如下:```vbaDim dataRange As RangeSet dataRange = s("DataRange").RefersToRange```将 "DataRange" 替换成实际的命名区域名称。

1.2 图表类型VBA 中的 `ChartObjects` 对象可以帮助我们创建不同类型的图表。

以下是常见的几种图表类型示例:柱状图:```vbaDim chartObj As ChartObjectSet chartObj =ThisWorkbook.Worksheets("Sheet1").ChartObjects.Add(Left:=100, Top:=100, Width:=400, Height:=300)chartObj.Chart.SetSourceData dataRangechartObj.Chart.ChartType = xlColumnClustered```折线图:```vbaDim chartObj As ChartObjectSet chartObj =ThisWorkbook.Worksheets("Sheet1").ChartObjects.Add(Left:=100, Top:=100, Width:=400, Height:=300)chartObj.Chart.SetSourceData dataRangechartObj.Chart.ChartType = xlLine```饼图:```vbaDim chartObj As ChartObjectSet chartObj =ThisWorkbook.Worksheets("Sheet1").ChartObjects.Add(Left:=100, Top:=100, Width:=400, Height:=300)chartObj.Chart.SetSourceData dataRangechartObj.Chart.ChartType = xlPie```以上示例中,分别创建了柱状图、折线图和饼图,并将指定的数据范围设置为图表的数据源。

用VB操作Excel(VB6.0)(整理)

用VB操作Excel(VB6.0)(整理)

用VB操作Excel(VB6.0)(整理)用VB操作Excel(VB6.0)(整理)全面控制Excel:首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application1)显示当前窗口:ExcelID.Visible:=True;2)更改Excel标题栏:ExcelID.Caption:='应用程序调用MicrosoftExcel';3)添加新工作簿:ExcelID.WorkBooks.Add;4)打开已存在的工作簿:ExcelID.WorkBooks.Open('C:\Excel\Demo.xls');5)设置第2个工作表为活动工作表:ExcelID.WorkSheets[2].Activate;或ExcelID.WorkSheets['Sheet2'].Activate;6)给单元格赋值:ExcelID.Cells[1,4].Value:='第一行第四列';7)设置指定列的宽度(单位:字符个数),以第一列为例:ExcelID.ActiveSheet.Columns[1].ColumnsWidth:=5;8)设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:ExcelID.ActiveSheet.Rows[2].RowHeight:=1/0.035;//1厘米9)在第8行之前插入分页符:ExcelID.WorkSheets[1].Rows[8].PageBreak:=1;10)在第8列之前删除分页符:ExcelID.ActiveSheet.Columns[4].PageBreak:=0;11)指定边框线宽度:ExcelID.ActiveSheet.Range['B3:D4'].Borders[2].Weight:=3;1-左 2-右 3-顶4-底 5-斜(\) 6-斜(/)12)清除第一行第四列单元格公式:ExcelID.ActiveSheet.Cells[1,4].ClearContents;13)设置第一行字体属性:ExcelID.ActiveSheet.Rows[1]:='隶书'; ExcelID.ActiveSheet.Rows[1].Font.Color :=clBlue; ExcelID.ActiveSheet.Rows[1].Font.Bold :=True;ExcelID.ActiveSheet.Rows[1].Font.UnderLine:=True;14)进行页面设置:a.页眉:ExcelID.ActiveSheet.PageSetup.CenterHeader:='报表演示'; b.页脚:ExcelID.ActiveSheet.PageSetup.CenterFooter:='第&P页'; c.页眉到顶端边距2cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin:=2/0.035; d.页脚到底端边距3cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin:=3/0.035; e.顶边距2cm:ExcelID.ActiveSheet.PageSetup.T opMargin:=2/0.035;f.底边距2cm:ExcelID.ActiveSheet.PageSetup.BottomMargin:=2/0.035; g.左边距2cm:ExcelID.ActiveSheet.PageSetup.LeftMargin:=2/0.035;h.右边距2cm:ExcelID.ActiveSheet.PageSetup.RightMargin:=2/0.035;i.页面水平居中:ExcelID.ActiveSheet.PageSetup.CenterHorizontally:=2/0.035; j.页面垂直居中:ExcelID.ActiveSheet.PageSetup.CenterVertically:=2/0.035; k.打印单元格网线:ExcelID.ActiveSheet.PageSetup.PrintGridLines:=True;15)拷贝操作:a.拷贝整个工作表:ed.Range.Copy;b.拷贝指定区域:ExcelID.ActiveSheet.Range['A1:E2'].Copy;c.从A1位置开始粘贴:ExcelID.ActiveSheet.Range.['A1'].PasteSpecial;d.从文件尾部开始粘贴:ExcelID.ActiveSheet.Range.PasteSpecial;16)插入一行或一列:a.ExcelID.ActiveSheet.Rows[2].Insert;b.ExcelID.ActiveSheet.Columns[1].Insert;17)删除一行或一列:a.ExcelID.ActiveSheet.Rows[2].Delete;b.ExcelID.ActiveSheet.Columns[1].Delete;18)打印预览工作表:ExcelID.ActiveSheet.PrintPreview;19)打印输出工作表:ExcelID.ActiveSheet.PrintOut;20)工作表保存:IfnotExcelID.ActiveWorkBook.SavedthenExcelID.ActiveSheet.PrintPreviewEndif21)工作表另存为:ExcelID.SaveAs('C:\Excel\Demo1.xls');22)放弃存盘:ExcelID.ActiveWorkBook.Saved:=True;23)关闭工作簿:ExcelID.WorkBooks.Close;24)退出Excel:ExcelID.Quit;25)设置工作表密码:ExcelID.ActiveSheet.Protect"123",DrawingObjects:=True,Con tents:=True,Scenarios:=True26)EXCEL的显示方式为最大化ExcelID.Application.WindowState=xlMaximized27)工作薄显示方式为最大化ExcelID.ActiveWindow.WindowState=xlMaximized28)设置打开默认工作薄数量ExcelID.SheetsInNewWorkbook=329)'关闭时是否提示保存(true保存;false不保存)ExcelID.DisplayAlerts=False30)设置拆分窗口,及固定行位置ExcelID.ActiveWindow.SplitRow=1ExcelID.ActiveWindow.FreezePanes=True31)设置打印时固定打印内容ExcelID.ActiveSheet.PageSetup.PrintTitleRows="$1:$1"32)设置打印标题ExcelID.ActiveSheet.PageSetup.PrintTitleColumns=""33)设置显示方式(分页方式显示)ExcelID.ActiveWindow.View=xlPageBreakPreview34)设置显示比例ExcelID.ActiveWindow.Zoom=10035)让Excel响应DDE请求Ex.Application.IgnoreRemoteRequests=False用VB操作EXCEL示例代码Private Sub Command3_Click()On Error GoTo err1Dim i As LongDim j As LongDim objExl As Excel.Application '声明对象变量Me.MousePointer=11 '改变鼠标样式Set objExl=New Excel.Application'初始化对象变量objExl.SheetsInNewWorkbook=1 '将新建的工作薄数量设为1 objExl.Workbooks.Add'增加一个工作薄objExl.Sheets(objExl.Sheets.Count).Name="book1" '修改工作薄名称objExl.Sheets.Add,objExl.Sheets("book1")‘增加第二个工作薄在第一个之后objExl.Sheets(objExl.Sheets.Count).Name="book2"objExl.Sheets.Add,objExl.Sheets("book2")‘增加第三个工作薄在第二个之后objExl.Sheets(objExl.Sheets.Count).Name="book3"objExl.Sheets("book1").Select '选中工作薄<book1>For i=1 To 50'循环写入数据For j=1 To 5If i=1 ThenobjExl.Selection.NumberFormatLocal="@" '设置格式为文本objExl.Cells(i,j)="E"&i&jElseobjExl.Cells(i,j)=i&jEndIfNextNextobjExl.Rows("1:1").Select '选中第一行objExl.Selection.Font.Bold=True '设为粗体objExl.Selection.Font.Size=24 '设置字体大小objExl.Cells.EntireColumn.AutoFit '自动调整列宽objExl.ActiveWindow.SplitRow=1 '拆分第一行objExl.ActiveWindow.SplitColumn=0 '拆分列objExl.ActiveWindow.FreezePanes=True '固定拆分objExl.ActiveSheet.PageSetup.PrintTitleRows="$1:$1" '设置打印固定行objExl.ActiveSheet.PageSetup.PrintTitleColumns=""'打印标题objExl.ActiveSheet.PageSetup.RightFooter="打印时间:"&_ Format(Now,"yyyy年mm月dd日hh:MM:ss")objExl.ActiveWindow.View=xlPageBreakPreview'设置显示方式objExl.ActiveWindow.Zoom=100 '设置显示大小'给工作表加密码objExl.ActiveSheet.Protect"123",DrawingObjects:=True, _Contents:=True,Scenarios:=TrueobjExl.Application.IgnoreRemoteRequests=FalseobjExl.Visible=True '使EXCEL可见objExl.Application.WindowState=xlMaximized'EXCEL的显示方式为最大化objExl.ActiveWindow.WindowState=xlMaximized'工作薄显示方式为最大化objExl.SheetsInNewWorkbook=3 '将默认新工作薄数量改回3个Set objExl=Nothing'清除对象Me.MousePointer=0 '修改鼠标ExitSuberr1:objExl.SheetsInNewWorkbook=3objExl.DisplayAlerts=False '关闭时不提示保存objExl.Quit'关闭EXCELobjExl.DisplayAlerts=True '关闭时提示保存Set objExl=NothingMe.MousePointer=0End Sub。

VB6.0调用Excel制作任意表格

VB6.0调用Excel制作任意表格

VB6.0调⽤Excel制作任意表格在VB中制作报表⼀般来讲有三种⽅法:1、直接使⽤VB6.0中⾃带的Data Report 来做,这种⽅法有很⼤的局限性,对于⽐较规则的报表,但对于⽐较复杂的报表,⽐如说⼀张报表,上部分是⼈员的⼯资,下部分是⼈员的各⽇的考勤,使⽤这种⽅法就⽆能为⼒。

2、使⽤直接的打印⽅法,即Printer.print ,这种⽅法直接向打印机打印,就象过去使⽤Foxpro 似的,需要进⾏打印机定位,并且在Windows下,不同的字符数字所占的宽度也不相同,所以这种⽅法使⽤起来⾮常⿇烦。

3、使⽤微软的Excel。

本⽂重点讨论⽤Excel来制作报表所涉及的问题。

我们⽤Excel做报表时,不仅是将所要的内容填到Excel的⼯作表中,⽽且还需要填写公式、定义合适的格式(格线、字体、对齐)等。

Excel的每张⼯作表是由若⼲⾏、若⼲列构成的,⾏列的交叉形成的⼩格称作单元格。

我们正好可以⽤这些现成的单元格来做我们的报表的相应的格。

为了程序简单,可以将报表的模板做好,如表头,相应的⾏⾼、列宽、字体、对齐调整好(事实上,这些也可以通过程序来实现,只是⿇烦点。

),然后利⽤VB程序来操纵 Excel。

这⾥我们以SQL SERVER 7.0为后台数据。

⾸先定义好需要的变量,在VB6.0的菜单“⼯程\引⽤”中确保 Microsoft Excel 8.0 Object Library(在Excel2000中,此处为Excel 9.0)复选框选中。

再向Excel⼯作表中填⼊数据:Dim VBExcel As Excel.ApplicationDim xlbook As Excel.Workbook 定义Excel⼯作簿对象Dim xlsheet As Excel.Worksheet 定义Excel⼯作表对象Dim rssalary As New ADODB.Recordset 定义记录集rssalary.Open SQLStrsalary, CNstring, adOpenStatic, adLockReadOnlyrssalary 为已计算好的⼯资数据记录集。

VB操作Excel的类模块DIYExcel类

VB操作Excel的类模块DIYExcel类

VB 操作Excel的类模块DIYExcel类前言:VB自带的Excel操作功能十分强大,但一般使用起来既要引用又要声明的,还是不太方便的,由于我们只是要使用它的一小部分功能,所以我把这部分常用的功能封装起来,制作了一个类模块,叫做DIYExcel类,使用起来十分方便。

一、DIYExcel类的主要属性、方法及使用示例1、属性Visible 布尔值,工作簿是否可见(须在工作簿打开后才能设置此属性) CellsForeColor 颜色值,当前单元格的前景色CellsBackColor 颜色值,当前单元格的背景色CellsValue 变体型,当前单元格的内容RowsNum 长整型,只读属性,当前工作表的有效行数ColsNum 长整型,只读属性,当前工作表的有效列数2、方法BookOpen(sPath As String) 打开工作簿(如果文件不存在就创建之并打开)BookClose() 关闭工作簿CreateBook(sPath As String) 创建Excel文件SheetsGoto(sSheet As String) 跳转到工作表CellsGoto(sRow As Long, sCol As Long) 跳转到单元格3、使用示例(九九乘法表)Dim Myxls As New DiyExce l’定义一个新的DIYExcel类的实例Private Sub Command1_Click()Dim sPath As StringsPath = "d:\abc.xls" ’Excel文件路径Myxls.BookOpen sPath ’打开Excel文件,如果文件不存在会自动创建之Myxls.Visible = True ’使打开的Excel可见Myxls.SheetsGoto "sheet1" ’跳转到工作表“sheet1”Dim i, j As Integer ’下面使用循环来打印九九乘法表For i = 1 To 9For j = 1 To iMyxls.CellsGoto i, j ’跳转到单元格(i,j)即第i行j列的单元格,’如B6就是(6,2)第6行第2列Myxls.CellsValue = i & "*" & j & "=" & i * jNextNextEnd SubPrivate Sub Command2_Click()Myxls.BookClose ’关闭ExcelEnd Sub二、DIYExcel类完整代码提示:可以在vb里添加一个类模块并修改Name属性为DIYExcel,然后把下面的代码粘贴进去(部分注释在word里被分为两行,第二行前面没有单引号,粘贴到vb里可能会报错,请自行修改为一行)Option Explicit'DIYExcel类Dim xlsApp As Object 'EXcel对象Dim xlsBooK As Object 'Excel工作簿Dim xlsSheet As Object 'Excel工作表Dim xlsRng As Object '用来获得工作表的有效行列数Dim CurrentRow As Long '当前单元格的行Dim CurrentCol As Long '当前单元格的列'跳转到工作表Public Sub SheetsGoto(sSheet As String)Set xlsSheet = xlsBooK.Sheets(sSheet)End Sub'跳转到单元格Public Sub CellsGoto(sRow, sCol)CurrentRow = sRowCurrentCol = sColEnd Sub'有效行列数Public Property Get RowsNum() As LongSet xlsRng = edRangeRowsNum = xlsRng.Rows.CountEnd PropertyPublic Property Get ColsNum() As LongSet xlsRng = edRangeColsNum = xlsRng.Columns.CountEnd Property'单元格内容Public Property Let CellsValue(sStr)xlsSheet.Cells(CurrentRow, CurrentCol).Value = sStrEnd PropertyPublic Property Get CellsValue()CellsValue = xlsSheet.Cells(CurrentRow, CurrentCol).ValueEnd Property'单元格前景色Public Property Get CellsForeColor() As OLE_COLORCellsForeColor = xlsSheet.Cells(CurrentRow, CurrentCol).Font.ColorEnd PropertyPublic Property Let CellForeColor(sColor As OLE_COLOR)xlsSheet.Cells(CurrentRow, CurrentCol).Font.Color = sColorEnd Property'单元格背景色Public Property Get CellsBackColor() As OLE_COLORCellsBackColor = xlsSheet.Cells(CurrentRow, CurrentCol).Interior.ColorEnd PropertyPublic Property Let CellsBackColor(sColor As OLE_COLOR)xlsSheet.Cells(CurrentRow, CurrentCol).Interior.Color = sColorEnd Property'可见性Public Property Get Visible() As BooleanVisible = xlsApp.VisibleEnd PropertyPublic Property Let Visible(sV As Boolean)xlsApp.Visible = sVEnd Property'打开工作簿Public Sub BookOpen(sPath As String)If sPath = "" ThenMsgBox "错误Excel文件路径为空" & vbCrLf & vbCrLf & "必须指定Excel文件路径才能打开Excel文件", vbExclamation + vbSystemModalExit SubEnd IfIf Dir(sPath) = "" Then '如果指定的xls文件不存在,就创建之CreateBook sPathEnd IfSet xlsApp = CreateObject("Excel.Application")Set xlsBooK = xlsApp.Workbooks.Open(sPath)End Sub'关闭工作簿Public Sub BookClose()xlsBooK.Saved = TruexlsBooK.ClosexlsApp.QuitSet xlsApp = NothingEnd Sub'创建Excel文件Public Sub CreateBook(sPath As String)On Error GoTo ErrTo:Dim Cxls As ObjectDim Cbook As ObjectDim M As Integer'如果要创建的文件已经存在If Dir(sPath) <> "" ThenBeepM = MsgBox("文件“" & sPath & "”已经存在" & vbCrLf & vbCrLf & "是否进行覆盖?", vbQuestion + vbYesNo + vbSystemModal)If M = vbYes ThenKill sPath '如果删不掉会出现错误70号ElseExit SubEnd IfEnd IfSet Cxls = CreateObject("Excel.Application")Set Cbook = Cxls.Workbooks.Add '创建工作簿Cbook.SaveAs sPath '保存工作簿Cbook.Saved = True '设定工作簿的保存状态为已保存(实际上不一定保存了)Cbook.Close '关闭工作簿Cxls.Quit '退出ExcelSet Cxls = Nothing '释放对象Exit Sub '没有错误就不执行下面的错误处理代码ErrTo: '错误处理If Err.Number = 70 ThenMsgBox "运行时错误文件覆盖失败" & vbCrLf & vbCrLf & "可能是由于该文件处于打开状态或其他进程正在占用该文件," & vbCrLf & vbCrLf & "请确认文件处于非占用状态再进行覆盖操作", vbCriticalErr.ClearEnd IfEnd Sub。

VB6.0控制EXCEL进行报表设计及打印!

VB6.0控制EXCEL进行报表设计及打印!

VB6.0控制EXCEL进行报表设计及打印!在工控程序的开发中,经常涉及到数据信息的分析、加工,最终还需把统计结果形成各种形式的报表打印输出。

在Visual Basic中制作报表,通常是用数据环境设计器(DataEnvironment Designer)与数据报表设计器(Data Report Designer),或者使用第三方产品来完成。

但对于大多数习惯于Excel报表的用户而言,用以上方法生成的报表在格式和功能等方面往往不能满足他们的要求。

由于Excel具有自己的对象库,在Visual Basic工程中可以加以引用,通过对Excel使用OLE自动化,可以创建一些外观整洁的报表,然后打印输出。

这样实现了Visual Basic应用程序对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.Visible = Falsezsbexcel.SheetsInNewWorkbook = 1Set zsbworkbook = zsbexcel.Workbooks.Add2)设置单元格和区域值要设置一张工作表中每个单元格的值,可以使用Worksheet对象的Range属性或Cells属性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、定义EXCE寸象变量
dim x as excel.application
2、VB中,启动EXCEL
set x=createobject("excel.application")
3、新建一个EXCE T L 作簿
x.workbooks.add
4、选定工作表1
set xsheet=xbook.worksheets(1)
5、指定单元格,并赋值xsheet.cell(1,1)=ret.fields(0)
6 指定EXCE S L 宽
xsheet.column(1).columnwidth=10
7、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=true
10、设置EXCEI表格边框
xsheet.range(cells(1,1),cells(10,20)).borders.linestyle=xlcontinu
ous
11 、运行时,显示EXCE S L 隐藏EXCEL
x.visible=true
12、保存工作簿
xbook save
13、退出EXCEL
x.quit
14、交还控制权给EXCEL
set x=nothing
15、打印EXCEL表
x.active.window.selectedsheets.printout copies=numcopies
16、退出EXCEL寸,不出现保存提示。

x.displayalerts=false
17、怎样运用EXCEI公式?
x.range("A3").formula= "=max(A1,A2)"
18、E XCEL弋码获取技巧
打开EXCEL中的工具----宏----录制新宏,然后进行手工操作,结束后把所的宏代码贴进你的VB程序就行。

19、合并单元格弋码x.range("A2:A5").inergecells=true
20、自动调整列宽代码
x.column("A:I").autofit ' a 到I 列自动调整列宽
21、文本自动换行代码
x.rows(3).wraptext=true
22、设置字体颜色
x.rows(1).font.colorindex=4
23、打印预览代码
x.worksheets.printpreview
24、打开EXCEL文件
x.workbooks.open filename:="c:\my documents\my vb \lgx \dy.xls"
(注:表格素材和资料部分来自网络,供参考。

只是收取少量整理收集费用,请预览后才下载,期待你的好评与关注)。

相关文档
最新文档