1、vb操作excel大全VB操纵EXCEL大全2008-02-26 11:07范例一Option Explicit Private Sub Command1_Click() Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlChar As New Excel.Chart Dim xlSheet As New Excel.Worksheet 建立需要的对象 Set xlApp = New Excel.Application Set xlApp = CreateObject(Excel.Application) Set
2、 xlBook = xlApp.Workbooks.Open(F:BOOK1.xls) Set xlSheet = xlBook.Worksheets(1) 建立Chart 对象 Set xlChar = xlApp.Charts.Add() xlChar.ChartType = xlLineMarkers Call xlChar.SetSourceData(xlSheet.Range(A1:E7), xlColumns) 原数据 ActiveChart.Location Where:=xlLocationAsObject, Name:=Sheet1 ActiveChart.HasLegend
3、 = True ActiveChart.Legend.Select Selection.Position = xlRight 选中建立的ChartObjects对象 ActiveSheet.ChartObjects(图表 1).Activate ActiveChart.PlotArea.Select ActiveChart.Legend.Select 删除 退出(&X) 菜单 Dim i As Integer For i = 1 To xlApp.CommandBars(File).Controls.Count Debug.Print xlApp.CommandBars(File).Contr
4、ols(i).Caption If Left$(xlApp.CommandBars(File).Controls(i).Caption, 2) = 关闭 Then xlApp.CommandBars(File).Controls(i).Visible = False Delete Exit For End If Next 显示EXCEL xlApp.Visible = True End Sub范例二RichTextBox1 Dim xlApp As Excel.Application Set xlApp = New Excel.Application - 然后,可以用这些变量来访问在EXCEL
5、应用程序中的从属对象、以及这些对象的属性和方法。例如: Set xlApp = CreateObject(Excel.Application) 激活EXCEL应用程序 xlApp.Visible = False 隐藏EXCEL应用程序窗口 Set xlBook = xlApp.Workbooks.Open(strDestination) 打开工作簿,strDestination为一个EXCEL报表文件 Set xlSheet = xlBook.Worksheets(1) 设定工作表 = VB借助EXCEL实现表格设计 1、定义EXCEL对象变量 dim x as excel.applicati
6、on 2、VB中,启动EXCEL set x=createobject(excel.application) 3、新建一个EXCEL工作簿 x.workbooks.add 4、选定工作表1 set xsheet=xbook.worksheets(1) 5、指定单元格,并赋值 xsheet.cell(1,1)=ret.fields(0) 6、指定EXCEL列宽 xsheet.column(1).columnwidth=10 7、RANGE()函数,选定单元格区域 range(cells(1,1),cells(10,20) 8、设置EXCEL字体 xsheet.range(cells(1,1),c
7、ells(10,20).font.name=黑体 9、设置EXCEL为粗体 xsheet.range(cells(1,1),cells(10,20).fontbold=true 10、设置EXCEL表格边框 xsheet.range(cells(1,1),cells(10,20).borders.linestyle=xlcontinuous 11、运行时,显示EXCEL或隐藏EXCEL x.visible=true 12、保存工作簿 xbook save 13、退出EXCEL x.quit 14、交还控制权给EXCEL set x=nothing 15、打印EXCEL表 x.active.wi
8、ndow.selectedsheets.printout copies=numcopies 16、退出EXCEL时,不出现保存提示。 x.displayalerts=false 17、怎样运用EXCEL公式? x.range(A3).formula= =max(A1,A2) 18、EXCEL代码获取技巧 打开EXCEL中的工具-宏-录制新宏,然后进行手工操作,结束后把所录的宏代码贴进你的VB程序就行。 19、合并单元格代码 x.range(A2:A5).inergecells=true 20、自动调整列宽代码 x.column(A:I).autofit a到 I列自动调整列宽 21、文本自动换
9、行代码 x.rows(3).wraptext=true 22、设置字体颜色 x.rows(1).font.colorindex=4 23、打印预览代码 x.worksheets.printpreview 24、打开EXCEL文件 x.workbooks.open filename:=c:my documentsmy vb lgx dy.xls = 如何用VB控制EXCEL生成报表 贾利冬() 做为一种简捷、系统的 Windows应用程序开发工具,Visual Basic 6 具有强大的数据处理功能,提供了多种数据访问方法,可以方便地存取Microsoft SQL Server、Oracle、X
10、Base等多种数据库,被广泛应用于建立各种信息管理系统。但是,VB缺乏足够的、符合中文习惯的数据表格输出功能,虽然使用Crystal Report控件及 Crystal Reports程序可以输出报表,但操作起来很麻烦,中文处理能力也不理想。Excel作为Micorsoft公司的表格处理软件在表格方面有着强大的功能,我们可用VB5编写直接控制Excel操作的程序,方法是用VB的OLE自动化技术获取Excel 2000 的控制句柄,从而直接控制Excel 2000的一系列操作。 下面给出一个实例: 首先建立一个窗体(FORM1)在窗体中加入一个DATA控件和一按钮, 引用Microsoft Ex
11、cel类型库: 从工程菜单中选择引用栏; 选择Microsoft Excel 9.0 Object Library; 选择确定。 然后在FORM的LOAD事件中加入: Private Sub Form_Load() 数据库及表可以另选,本文以Nwind.mdb为例 Data1.DatabaseName = C:Program FilesMicrosoft Visual StudioVB98Nwind.mdb Data1.RecordSource = Customers Data1.Refresh End Sub 在按钮的CLICK事件中加入 Private Sub Command1_Click
12、() Dim Irow, Icol As Integer Dim Irowcount, Icolcount As Integer Dim Fieldlen() 存字段长度值 Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Set xlApp = CreateObject(Excel.Application) Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1) With Data1
13、.Recordset .MoveLast If .RecordCount 1 Then MsgBox (Error 没有记录!) Exit Sub End If Irowcount = .RecordCount 记录总数 Icolcount = .Fields.Count 字段总数 ReDim Fieldlen(Icolcount) .MoveFirst For Irow = 1 To Irowcount + 1 For Icol = 1 To Icolcount Select Case Irow Case 1 在Excel中的第一行加标题 xlSheet.Cells(Irow, Icol).
14、Value = .Fields(Icol - 1).Name Case 2 将数组FIELDLEN()存为第一条记录的字段长 If IsNull(.Fields(Icol - 1) = True Then Fieldlen(Icol) = LenB(.Fields(Icol - 1).Name) 如果字段值为NULL,则将数组Filelen(Icol)的值设为标题名的宽度 Else Fieldlen(Icol) = LenB(.Fields(Icol - 1) End If xlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol) Excel列宽等于
15、字段长 xlSheet.Cells(Irow, Icol).Value = .Fields(Icol - 1) 向Excel的CellS中写入字段值 Case Else Fieldlen1 = LenB(.Fields(Icol - 1) If Fieldlen(Icol) Fieldlen1 Then xlSheet.Columns(Icol).ColumnWidth = Fieldlen1 表格列宽等于较长字段长 Fieldlen(Icol) = Fieldlen1 数组Fieldlen(Icol)中存放最大字段长度值 Else xlSheet.Columns(Icol).ColumnWi
16、dth = Fieldlen(Icol) End If xlSheet.Cells(Irow, Icol).Value = .Fields(Icol - 1) End Select Next If Irow 1 Then If Not .EOF Then .MoveNext End If Next With xlSheet .Range(.Cells(1, 1), .Cells(1, Icol - 1).Font.Name = 黑体 设标题为黑体字 .Range(.Cells(1, 1), .Cells(1, Icol - 1).Font.Bold = True 标题字体加粗 .Range(.
17、Cells(1, 1), .Cells(Irow, Icol - 1).Borders.LineStyle = xlContinuous 设表格边框样式 End With xlApp.Visible = True 显示表格 xlBook.Save 保存 Set xlApp = Nothing 交还控制给Excel End With End Sub 本程序在中文Windows98、中文VB6下通过。 = VB5.0调用Office97技巧 Visual Basic 5.0具有简单、易学等特点,深受初学者的欢迎,但也有一些不如人意的地方。例如,不能像Word 97那样进行拼写检查,不能像Excel
18、 97那样具有很多的函数。如果我们能将Word 97和Exce l97的功能使用在Visual Basic 5.0中,就可以使VB达到锦上添花的目的。 我们知道所有Office 97 应用程序都提供了ActiveX对象,我们可以在Visual Basic 5.0中使用它们。 调用Word 97 要想在VB中调用Word 97,首先要打开VB的工程菜单中的引用项目,并在该项目对话框中选定Microsoft Word 8.0 Object Library就可以了。 下面我们举例说明调用Word 97中的拼写检查和单词统计功能。首先新建一个工程并在窗体上放置一个TextBox控件和两个Command
19、Button控件,然后添入如下的代码: Option Explicit Dim Doc As New Document Dim Visi As Boolean 图1 调用Word 97 拼写检查 Private Sub Command1Click() Form1.Caption = 拼写检查 Doc.Range.Text = Text1 确定范围 Doc.Application.Visible = True 将Word 97变为可见 AppActivate Doc.Application.Caption 激活Word 97 Doc.Range.CheckSpelling 拼写检查 Text1
20、= 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) 字
21、符 显示统计结果 End Sub Top范例三 Private Sub FormLoad() Form1.Caption =调用Word 97 Text1.Text = Command1.Caption = 拼写检查 Command2.Caption = 统计单词 使应用程序可见 Visi = Doc.Application.Visible End Sub 关闭应用程序 Private Sub FormUnload(Cancel As Integer) If Visi Then 关闭文件 Doc.Close savechanges:=False Else Doc.Application.Qui
22、t savechanges:=False 关闭 Word 97 End If End Sub 运行中的窗体如图1所示。 图2 调用Excel 97 调用Excel 97 使用Excel Sheet对象的技术可以处理可变数量的数据,并将结果最后送到你的Visual Basic 应用程序中。例子如下: 新建一个工程并在新建的窗体上放置两个TextBox控件和一个CommandButton控件及六个Label控件。建设中的窗体如图2所示。 程序代码如下: Option Explicit Private Sub Command1Click() Dim xObject As Object 调用Excel
23、 97 Set xObject = CreateObject(Excel.Sheet) Set xObject = xObject.Application.ActiveWorkbook.ActiveSheet xObject.Range(A1).Value = Text1.Text 将数值送入Excel 97的A1单元格 xObject.Range(A2).Value = Text2.Text 将数值送入Excel 97的A2单元格 xObject.Range(A3).Formula = =MAX(A1,A2) 将最大值送入A3单元格 xObject.Range(A4).Formula = =
24、ATAN(A1/A2)180/PI() 将反正切值送入A4单元格 显示计算的结果 Label1.Caption = xObject.Range(A3).Value Label2.Caption = xObject.Range(A4).Value Set xObject = Nothing End Sub Private Sub Form_Load() Text1.Text = Text2.Text = Label1.Caption = Label2.Caption = End Sub 该程序的作用是:首先在两个文本框(Text1和Text2)输入数值并分别将输入的数值送入Excel 97的A1
25、和A2单元格中,然后用Excel 97中的Max()函数将计算的结果送入A3 单元格中;用反正切函数ATAN()进行计算并将结果送入A4 单元格中,最后输出。 table border=0 width=100% cell = 浅谈Excel 的VB编程 Excel是一个优秀的电子表格软件,如果你编的程序需要以报表的形式显示最终结果,它会是个不错的选择。你可以通过VB控制Excel显示数据表格。如果你不愿意深入了解Excel这些琐碎的细节,也不是没有权宜之计:你可以打开Excel中的工具宏录制新宏,然后进行手工操作,结束后把所录的宏代码贴进你的VB程序就行。这样得到的程序一般都能正常运行,但其中
26、的宏代码往往不够简洁,效率和可读性都不高。 - Excel编程碰到的第一个问题是表头。有时表头的形式比较复杂,需要横向或纵向合并单元格。请放心,只要没有斜杠,Excel都能应付得了。 - 例如合并A2A5这4个单元格,你录制的宏代码会是这样: Range(A2:A5).Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .ShrinkToFit = False .Merge
27、Cells = False End With Selection.Merge - 而自己编程只要一句 Range.(A2:A5).mergecells=True 就可以解决问题。 - 表头形式定了,再就是表头的内容。如果单元格中的文本长度超过了列宽,往往只能显示部分内容,行尾那一格的内容则会越境进入右边那个空白单元格,很不美观。这个问题可以通过在程序中设置列宽加以解决。 - Columns(14).columnwidth=12 设置第14列列宽为12(缺省列宽为8.38) - 如果你不愿意劳神去逐列估计实际所需的列宽,干脆来一行 - Columns(a:i).autofit a到i列自动调整列宽 - 让Excel随机应变吧。 - 但也许你不喜欢这种方法,认为表头撑大了列宽,弄得浏览一张小表格还得向右滚动,太不方便了。要是能保持默认列宽,让文本自动换行就好了。没问题,Excel包你满意。 - Rows(3).WrapText=True 让第三行各单元格中的文本自动换行 - 不过你最好再加一句 Rows(3) .VerticalAlignment = xlTop 让表头自动向上对齐,这样比较符合习惯。 - 你还可以给表头打上底色,让你的读者不至于看了打哈欠。 - Rows(2). Interior .ColorIndex = 5 设置第2行底色
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1