1、xlSheet.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 56 XlApp.Cells(i, 1) = i xlapp.Cells(i, 1).Interior.ColorIndex = i Nex
2、t End Sub4、在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。但在EXCEL操作过程中关闭EXCEL对象时,VB程序无法知道,如果此时使用EXCEL对象,则VB程序会产生自动化错误。形成VB程序无法完全控制EXCEL的状况,使得VB与EXCEL脱节。二、 EXCEL的宏功能:EXCEL提供一个Visual Basic编辑器,打开Visual Basic编辑器,其中有一工程属性窗口,点击右键菜单的插入模块,则增加一个模块1,在此模块中可以运用Visual Basic语言编写函数和过程并
3、称之为宏。其中,EXCEL有两个自动宏:一个是启动宏(Sub Auto_Open(),另一个是关闭宏(Sub Auto_Close()。它们的特性是:当用EXCEL打含有启动宏的工簿时,就会自动运行启动宏,同理,当关闭含有关闭宏的工作簿时就会自动运行关闭宏。但是通过VB的自动化功能来调用EXCEL工作表时,启动宏和关闭宏不会自动运行,而需要在VB中通过命令xlBook.RunAutoMacros (xlAutoOpen)和xlBook.RunAutoMacros (xlAutoClose) 来运行启动宏和关闭宏。三、 VB与EXCEL的相互勾通:充分利用EXCEL的启动宏和关闭宏,可以实现VB
4、与EXCEL的相互勾通,其方法如下:在EXCEL的启动宏中加入一段程序,其功能是在磁盘中写入一个标志文件,同时在关闭宏中加入一段删除此标志文件的程序。VB程序在执行时通过判断此标志文件存在与否来判断EXCEL是否打开,如果此标志文件存在,表明EXCEL对象正在运行,应该禁止其它程序的运行。如果此标志文件不存在,表明EXCEL对象已被用户关闭,此时如果要使用EXCEL对象运行,必须重新创建EXCEL对象。四、举例:1、在VB中,建立一个FORM,在其上放置两个命令按钮,将ommand1的Caption属性改为EXCEL,Command2的Caption属性改为End。然后在其中输入如下程序:Di
5、m xlApp As Excel.Application 定义EXCEL类 Dim xlBook As Excel.Workbook 定义工件簿类Dim xlsheet As Excel.Worksheet 定义工作表类 Private Sub Command1_Click() 打开EXCEL过程If Dir(D:tempexcel.bz) = Then 判断EXCEL是否打开创建EXCEL应用类设置EXCEL可见tempbb.xls打开EXCEL工作簿Set xlsheet = xlBook.Worksheets(1) 打开EXCEL工作表xlApp .Activate 激活工作表xlApp
6、 .Cells(1, 1) = abc 给单元格1行驶列赋值运行EXCEL中的启动宏ElseMsgBox (EXCEL已打开) End IfPrivate Sub Command2_Click() 由VB关闭EXCEL 执行EXCEL关闭宏关闭EXCEL工作簿关闭EXCELSet xlApp = Nothing 释放EXCEL对象End2、在盘根目录上建立一个名为Temp的子目录,在Temp目录下建立一个名为bb.xls的EXCEL文件。3、在中打开Visual Basic编辑器,在工程窗口中点鼠标键选择插入模块,在模块中输入入下程序存盘:Sub auto_open()Open d: For
7、Output As #1 写标志文件Close #1Sub auto_close()Kill 删除标志文件4、运行VB程序,点击EXCEL按钮可以打开EXCEL系统,打开EXCEL系统后,VB程序和EXCEL分别属两个不同的应用系统,均可同时进行操作,由于系统加了判断,因此在VB程序中重复点击EXCEL按钮时会提示EXCEL已打开。如果在EXCEL中关闭EXCEL后再点EXCEL按钮,则会重新打开EXCEL。而无论EXCEL打开与否,通过VB程序均可关闭EXCEL。这样就实现了VB与EXCEL的无缝连接。范例一Option ExplicitPrivate Sub Command1_Click(
8、)Dim xlBook As Excel.WorkbookDim xlChar As New Excel.ChartDim xlSheet As New Excel.Worksheet建立需要的对象Set xlApp = New Excel.Application)F:BOOK1.xlsSet xlSheet = xlBook.Worksheets(1)建立Chart 对象Set xlChar = xlApp.Charts.Add()xlChar.ChartType = xlLineMarkersCall xlChar.SetSourceData(xlSheet.Range(A1:E7), x
9、lColumns) 原数据ActiveChart.Location Where:=xlLocationAsObject, Name:=Sheet1ActiveChart.HasLegend = TrueActiveChart.Legend.SelectSelection.Position = xlRight选中建立的ChartObjects对象ActiveSheet.ChartObjects(图表 1).ActivateActiveChart.PlotArea.Select删除 退出(&X) 菜单Dim i As IntegerFor i = 1 To xlApp.CommandBars(Fi
10、le).Controls.CountDebug.Print xlApp.CommandBars().Controls(i).CaptionIf Left$(xlApp.CommandBars().Controls(i).Caption, 2) = 关闭 ThenxlApp.CommandBars().Controls(i).Visible = False DeleteExit ForEnd IfNext显示EXCELxlApp.Visible = True范例二RichTextBox1- 然后,可以用这些变量来访问在EXCEL应用程序中的从属对象、以及这些对象的属性和方法。例如:激活EXCEL
11、应用程序xlApp.Visible = False 隐藏EXCEL应用程序窗口Set xlBook = xlApp.Workbooks.Open(strDestination)打开工作簿,strDestination为一个EXCEL报表文件设定工作表VB借助EXCEL实现表格设计1、定义EXCEL对象变量dim x as excel.application2、VB中,启动EXCELset x=createobject(excel.application3、新建一个EXCEL工作簿x.workbooks.add4、选定工作表1set xsheet=xbook.worksheets(1)5、指定单
12、元格,并赋值xsheet.cell(1,1)=ret.fields(0)6、指定EXCEL列宽xsheet.column(1).columnwidth=107、RANGE()函数,选定单元格区域range(cells(1,1),cells(10,20)8、设置EXCEL字体xsheet.range(cells(1,1),cells(10,20).font.name=黑体9、设置EXCEL为粗体xsheet.range(cells(1,1),cells(10,20).fontbold=true10、设置EXCEL表格边框xsheet.range(cells(1,1),cells(10,20).b
13、orders.linestyle=xlcontinuous11、运行时,显示EXCEL或隐藏EXCELx.visible=true12、保存工作簿xbook save13、退出EXCELx.quit14、交还控制权给EXCELset x=nothing15、打印EXCEL表x.active.window.selectedsheets.printout copies=numcopies16、退出EXCEL时,不出现保存提示。x.displayalerts=false17、怎样运用EXCEL公式?x.range(A3).formula= =max(A1,A2)18、EXCEL代码获取技巧打开EXC
14、EL中的工具-宏-录制新宏,然后进行手工操作,结束后把所录的宏代码贴进你的VB程序就行。19、合并单元格代码A2:A5).inergecells=true20、自动调整列宽代码x.column(A:I).autofit a到 I列自动调整列宽21、文本自动换行代码x.rows(3).wraptext=true22、设置字体颜色x.rows(1).font.colorindex=423、打印预览代码x.worksheets.printpreview24、打开EXCEL文件x.workbooks.open filename:c:my documentsmy vb lgx dy.xls=如何用VB控
15、制EXCEL生成报表做为一种简捷、系统的 Windows应用程序开发工具,Visual Basic 6 具有强大的数据处理功能,提供了多种数据访问方法,可以方便地存取Microsoft SQL Server、Oracle、XBase等多种数据库,被广泛应用于建立各种信息管理系统。但是,VB缺乏足够的、符合中文习惯的数据表格输出功能,虽然使用Crystal Report控件及 Crystal Reports程序可以输出报表,但操作起来很麻烦,中文处理能力也不理想。Excel作为Micorsoft公司的表格处理软件在表格方面有着强大的功能,我们可用VB5编写直接控制Excel操作的程序,方法是用V
16、B的OLE自动化技术获取Excel 2000 的控制句柄,从而直接控制Excel 2000的一系列操作。下面给出一个实例:首先建立一个窗体(FORM1)在窗体中加入一个DATA控件和一按钮,引用Microsoft Excel类型库:栏;选择Microsoft Excel 9.0 Object Library;选择然后在FORM的LOAD事件中加入:Private Sub Form_Load()数据库及表可以另选,本文以Nwind.mdb为例Data1.DatabaseName = C:Program FilesMicrosoft Visual StudioVB98Nwind.mdbData1.
17、RecordSource = CustomersData1.Refresh在按钮的CLICK事件中加入Dim Irow, Icol As IntegerDim Irowcount, Icolcount As IntegerDim Fieldlen() 存字段长度值Set xlBook = xlApp.Workbooks.AddWith Data1.Recordset.MoveLastIf .RecordCount 1 ThenError 没有记录!Exit SubIrowcount = .RecordCount 记录总数Icolcount = .Fields.Count 字段总数ReDim F
18、ieldlen(Icolcount).MoveFirstFor Irow = 1 To Irowcount + 1For Icol = 1 To IcolcountSelect Case IrowCase 1 在Excel中的第一行加标题xlSheet.Cells(Irow, Icol).Value = .Fields(Icol - 1).NameCase 2 将数组FIELDLEN()存为第一条记录的字段长If IsNull(.Fields(Icol - 1) = True ThenFieldlen(Icol) = LenB(.Fields(Icol - 1).Name)如果字段值为NULL
19、,则将数组Filelen(Icol)的值设为标题名的宽度ElseFieldlen(Icol) = LenB(.Fields(Icol - 1)xlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol)Excel列宽等于字段长xlSheet.Cells(Irow, Icol).Value = .Fields(Icol - 1)向Excel的CellS中写入字段值Case ElseFieldlen1 = LenB(.Fields(Icol - 1)If Fieldlen(Icol) Fieldlen1 ThenxlSheet.Columns(Icol).C
20、olumnWidth = Fieldlen1表格列宽等于较长字段长Fieldlen(Icol) = Fieldlen1数组Fieldlen(Icol)中存放最大字段长度值End SelectIf Irow If Not .EOF Then .MoveNextWith xlSheet.Range(.Cells(1, 1), .Cells(1, Icol - 1).Font.Name = 设标题为黑体字.Range(.Cells(1, 1), .Cells(1, Icol - 1).Font.Bold = True标题字体加粗.Range(.Cells(1, 1), .Cells(Irow, Ic
21、ol - 1).Borders.LineStyle = xlContinuous设表格边框样式End With显示表格xlBook.Save 保存交还控制给Excel本程序在中文Windows98、中文VB6下通过。=VB5.0调用Office97技巧Visual Basic 5.0具有简单、易学等特点,深受初学者的欢迎,但也有一些不如人意的地方。例如,不能像Word 97那样进行拼写检查,不能像Excel 97那样具有很多的函数。如果我们能将Word 97和Exce l97的功能使用在Visual Basic 5.0中,就可以使VB达到锦上添花的目的。我们知道所有Office 97 应用程序
22、都提供了ActiveX对象,我们可以在Visual Basic 5.0中使用它们调用Word 97要想在VB中调用Word 97,首先要打开VB的菜单中的项目,并在该项目对话框中选定Microsoft Word 8.0 Object Library就可以了。下面我们举例说明调用Word 97中的拼写检查和单词统计功能。首先新建一个工程并在窗体上放置一个TextBox控件和两个CommandButton控件,然后添入如下的代码: Option Explicit Dim Doc As New Document Dim Visi As Boolean拼写检查 Private Sub Command1
23、Click() Form1.Caption = Doc.Range.Text = Text1确定范围 Doc.Application.Visible = True 将Word 97变为可见 AppActivate Doc.Application.Caption激活Word 97 Doc.Range.CheckSpelling Text1 = Doc.Range.Text Text1 = Left(Text1, Len(Text1) 1) AppActivate Caption End Sub 统计单词数 Private Sub Command2Click() Dim Dlg As Word.Dialog Doc.Range = Text1.Text Set Dlg = Doc.Application.Dialogs (wdDialogDocumentStatistics) Dlg.Execute 统计单词和字符 Form1.Caption =单词数: Str(Dlg.Words) 词 Str(Dlg.Characters) 字符 显示统计结果Top范例三 Private Sub FormLoad()调用Word 97 Text1.Text = Command1.Caption = Command2.Caption = 统计单词
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1