VB操作EXCEL表的常用方法.docx

上传人:b****2 文档编号:75388 上传时间:2023-04-28 格式:DOCX 页数:128 大小:52.24KB
下载 相关 举报
VB操作EXCEL表的常用方法.docx_第1页
第1页 / 共128页
VB操作EXCEL表的常用方法.docx_第2页
第2页 / 共128页
VB操作EXCEL表的常用方法.docx_第3页
第3页 / 共128页
VB操作EXCEL表的常用方法.docx_第4页
第4页 / 共128页
VB操作EXCEL表的常用方法.docx_第5页
第5页 / 共128页
VB操作EXCEL表的常用方法.docx_第6页
第6页 / 共128页
VB操作EXCEL表的常用方法.docx_第7页
第7页 / 共128页
VB操作EXCEL表的常用方法.docx_第8页
第8页 / 共128页
VB操作EXCEL表的常用方法.docx_第9页
第9页 / 共128页
VB操作EXCEL表的常用方法.docx_第10页
第10页 / 共128页
VB操作EXCEL表的常用方法.docx_第11页
第11页 / 共128页
VB操作EXCEL表的常用方法.docx_第12页
第12页 / 共128页
VB操作EXCEL表的常用方法.docx_第13页
第13页 / 共128页
VB操作EXCEL表的常用方法.docx_第14页
第14页 / 共128页
VB操作EXCEL表的常用方法.docx_第15页
第15页 / 共128页
VB操作EXCEL表的常用方法.docx_第16页
第16页 / 共128页
VB操作EXCEL表的常用方法.docx_第17页
第17页 / 共128页
VB操作EXCEL表的常用方法.docx_第18页
第18页 / 共128页
VB操作EXCEL表的常用方法.docx_第19页
第19页 / 共128页
VB操作EXCEL表的常用方法.docx_第20页
第20页 / 共128页
亲,该文档总共128页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

VB操作EXCEL表的常用方法.docx

《VB操作EXCEL表的常用方法.docx》由会员分享,可在线阅读,更多相关《VB操作EXCEL表的常用方法.docx(128页珍藏版)》请在冰点文库上搜索。

VB操作EXCEL表的常用方法.docx

VB操作EXCEL表的常用方法

 

VB操作EXCEL表的常用方法(设计值,颜色,大小)2009-05-1815:

37

 

VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应

 

修改程序,给应用软件的维护工作带来极大的不便。

因此有很多程序员现在已经充分利用EXECL的强大报表

 

功来实现报表功能。

但由于VB与EXCEL由于分别属于不同的应用系统,如何把它们有机地结合在一起,是

 

一个值得我们研究的课题。

 

一、VB读写EXCEL表:

 

VB本身提自动化功能可以读写EXCEL表,其方法如下:

 

1、在工程中引用MicrosoftExcel类型库:

 

从"工程"菜单中选择"引用"栏;选择MicrosoftExcel9.0ObjectLibrary(EXCEL2000),然后选择"

 

确定"。

表示在工程中要引用EXCEL类型库。

 

2、在通用对象的声明过程中定义EXCEL对象:

 

DimxlAppAsExcel.Application

 

DimxlBookAsExcel.WorkBook

 

DimxlSheetAsExcel.Worksheet

 

3、在程序中操作EXCEL表常用命令:

 

SetxlApp=CreateObject("Excel.Application")'创建EXCEL对象

 

SetxlBook=xlApp.Workbooks.Open("文件名")'打开已经存在的EXCEL工件簿文件

 

xlApp.Visible=True'设置EXCEL对象可见(或不可见)

 

SetxlSheet=xlBook.Worksheets("表名")'设置活动工作表

 

xlApp.Cells(row,col)=值'给单元格(row,col)赋值

 

XLApp.Cells(i,1).Interior.ColorIndex=i'设计单元格颜色i=1--56

 

xlSheet.PrintOut'打印工作表

 

xlBook.Close(True)'关闭工作簿

 

xlApp.Quit'结束EXCEL对象

 

SetxlApp=Nothing'释放xlApp对象

1

 

xlBook.RunAutoMacros(xlAutoOpen)'运行EXCEL启动宏

 

xlBook.RunAutoMacros(xlAutoClose)'运行EXCEL关闭宏

 

自己用代码就可以获取颜色列表了

 

Subyansecode()

 

Fori=1To56

 

XlApp.Cells(i,1)=i

 

xlapp.Cells(i,1).Interior.ColorIndex=i

 

Next

 

EndSub

 

4、在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。

但在EXCEL操作过程中关闭EXCEL对象时,VB程序无法知道,如果此时使用EXCEL对象,则VB程序会产生自动化错误。

形成VB程序无法完全控制EXCEL的状况,

 

使得VB与EXCEL脱节。

 

二、EXCEL的宏功能:

 

EXCEL提供一个VisualBasic编辑器,打开VisualBasic编辑器,其中有一工程属性窗口,点击右键

 

菜单的"插入模块",则增加一个"模块1",在此模块中可以运用VisualBasic语言编写函数和过程并称之为

 

宏。

其中,EXCEL有两个自动宏:

一个是启动宏(SubAuto_Open()),另一个是关闭宏(SubAuto_Close())。

 

它们的特性是:

当用EXCEL打含有启动宏的工簿时,就会自动运行启动宏,同理,当关闭含有关闭宏的工作

 

簿时就会自动运行关闭宏。

但是通过VB的自动化功能来调用EXCEL工作表时,启动宏和关闭宏不会自动运

 

行,而需要在VB中通过命令xlBook.RunAutoMacros(xlAutoOpen)和xlBook.RunAutoMacros(xlAutoClose)

 

来运行启动宏和关闭宏。

 

三、VB与EXCEL的相互勾通:

 

充分利用EXCEL的启动宏和关闭宏,可以实现VB与EXCEL的相互勾通,其方法如下:

 

在EXCEL的启动宏中加入一段程序,其功能是在磁盘中写入一个标志文件,同时在关闭宏中加入一段删除此标志文件的程序。

VB程序在执行时通过判断此标志文件存在与否来判断EXCEL是否打开,如果此标志文

2

 

件存在,表明EXCEL对象正在运行,应该禁止其它程序的运行。

如果此标志文件不存在,表明EXCEL对象已

 

被用户关闭,此时如果要使用EXCEL对象运行,必须重新创建EXCEL对象。

 

四、举例:

 

1、在VB中,建立一个FORM,在其上放置两个命令按钮,将Command1的Caption属性改为EXCEL,Command2

 

的Caption属性改为End。

然后在其中输入如下程序:

 

DimxlAppAsExcel.Application'定义EXCEL类

 

DimxlBookAsExcel.Workbook'定义工件簿类

 

DimxlsheetAsExcel.Worksheet'定义工作表类

 

PrivateSubCommand1_Click()'打开EXCEL过程

 

IfDir("D:

\temp\excel.bz")=""Then'判断EXCEL是否打开

 

SetxlApp=CreateObject("Excel.Application")'创建EXCEL应用类

 

xlApp.Visible=True'设置EXCEL可见

 

SetxlBook=xlApp.Workbooks.Open("D:

\temp\bb.xls")'打开EXCEL工作簿

 

Setxlsheet=xlBook.Worksheets

(1)'打开EXCEL工作表

 

xlApp.Activate'激活工作表

 

xlApp.Cells(1,1)="abc"'给单元格1行驶列赋值

 

xlBook.RunAutoMacros(xlAutoOpen)'运行EXCEL中的启动宏

 

Else

 

MsgBox("EXCEL已打开")

 

EndIf

 

EndSub

 

PrivateSubCommand2_Click()

 

IfDir("D:

\temp\excel.bz")<>""Then'由VB关闭EXCEL

 

xlBook.RunAutoMacros(xlAutoClose)'执行EXCEL关闭宏

 

xlBook.Close(True)'关闭EXCEL工作簿

3

 

xlApp.Quit'关闭EXCEL

 

EndIf

 

SetxlApp=Nothing'释放EXCEL对象

 

End

 

EndSub

 

2、在D盘根目录上建立一个名为Temp的子目录,在Temp目录下建立一个名为"bb.xls"的EXCEL文件。

 

3、在"bb.xls"中打开VisualBasic编辑器,在工程窗口中点鼠标键选择插入模块,在模块中输入入下

 

程序存盘:

 

Subauto_open()

 

Open"d:

\temp\excel.bz"ForOutputAs#1'写标志文件

 

Close#1

 

EndSub

 

Subauto_close()

 

Kill"d:

\temp\excel.bz"'删除标志文件

 

EndSub

 

4、运行VB程序,点击EXCEL按钮可以打开EXCEL系统,打开EXCEL系统后,VB程序和EXCEL分别属两

 

个不同的应用系统,均可同时进行操作,由于系统加了判断,因此在VB程序中重复点击EXCEL按钮时会提

 

示EXCEL已打开。

如果在EXCEL中关闭EXCEL后再点EXCEL按钮,则会重新打开EXCEL。

而无论EXCEL打开与否,通过VB程序均可关闭EXCEL。

这样就实现了VB与EXCEL的无缝连接。

 

4

 

范例一

 

OptionExplicit

 

PrivateSubCommand1_Click()

 

DimxlAppAsExcel.Application

 

DimxlBookAsExcel.Workbook

 

DimxlCharAsNewExcel.Chart

 

DimxlSheetAsNewExcel.Worksheet

 

'建立需要的对象

 

SetxlApp=NewExcel.Application

 

SetxlApp=CreateObject("Excel.Application")

 

SetxlBook=xlApp.Workbooks.Open("F:

\BOOK1.xls")

 

SetxlSheet=xlBook.Worksheets

(1)

 

'建立Chart对象

 

SetxlChar=xlApp.Charts.Add()

 

xlChar.ChartType=xlLineMarkers

 

CallxlChar.SetSourceData(xlSheet.Range("A1:

E7"),xlColumns)'原数据

 

ActiveChart.LocationWhere:

=xlLocationAsObject,Name:

="Sheet1"

 

ActiveChart.HasLegend=True

 

ActiveChart.Legend.Select

 

Selection.Position=xlRight

 

'选中建立的ChartObjects对象

 

ActiveSheet.ChartObjects("图表1").Activate

 

ActiveChart.PlotArea.Select

 

ActiveChart.Legend.Select

 

'删除退出(&X)菜单

5

 

DimiAsInteger

 

Fori=1ToxlApp.CommandBars("File").Controls.Count

 

Debug.PrintxlApp.CommandBars("File").Controls(i).Caption

 

IfLeft$(xlApp.CommandBars("File").Controls(i).Caption,2)="关闭"Then

 

xlApp.CommandBars("File").Controls(i).Visible=False'Delete

 

ExitFor

 

EndIf

 

Next

 

'显示EXCEL

 

xlApp.Visible=True

 

EndSub

 

范例二

 

RichTextBox1

 

DimxlAppAsExcel.Application

 

SetxlApp=NewExcel.Application

 

----然后,可以用这些变量来访问在EXCEL应用程序中的从属对象、以及这些对象的属性和方法。

 

如:

 

SetxlApp=CreateObject("Excel.Application")

 

‘激活EXCEL应用程序

 

xlApp.Visible=False‘隐藏EXCEL应用程序窗口

 

SetxlBook=xlApp.Workbooks.Open(strDestination)

 

‘打开工作簿,strDestination为一个EXCEL报表文件

 

SetxlSheet=xlBook.Worksheets

(1)

 

‘设定工作表

6

 

VB借助EXCEL实现表格设计

 

1、定义EXCEL对象变量

 

dimxasexcel.application

 

2、VB中,启动EXCEL

 

setx=createobject("excel.application")

 

3、新建一个EXCEL工作簿

 

x.workbooks.add

 

4、选定工作表1

 

setxsheet=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),cells(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、保存工作簿

 

xbooksave

7

 

13、退出EXCEL

 

x.quit

 

14、交还控制权给EXCEL

 

setx=nothing

 

15、打印EXCEL表

 

x.active.window.selectedsheets.printoutcopies=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、文本自动换行代码

 

x.rows(3).wraptext=true

 

22、设置字体颜色

 

x.rows

(1).font.colorindex=4

 

23、打印预览代码

 

x.worksheets.printpreview

 

24、打开EXCEL文件

 

x.workbooks.openfilename:

="c:

\mydocuments\myvb\lgx\dy.xls"

8

 

====================================================================================

 

如何用VB控制EXCEL生成报表

 

做为一种简捷、系统的Windows应用程序开发工具,VisualBasic6具有强大的数据处理功能,提供

 

了多种数据访问方法,可以方便地存取MicrosoftSQLServer、Oracle、XBase等多种数据库,被广泛应用

 

于建立各种信息管理系统。

但是,VB缺乏足够的、符合中文习惯的数据表格输出功能,虽然使用Crystal

 

Report控件及CrystalReports程序可以输出报表,但操作起来很麻烦,中文处理能力也不理想。

Excel作

 

为Micorsoft公司的表格处理软件在表格方面有着强大的功能,我们可用VB5编写直接控制Excel操作的程序,方法是用VB的OLE自动化技术获取Excel2000的控制句柄,从而直接控制Excel2000的一系列操作。

 

下面给出一个实例:

 

首先建立一个窗体(FORM1)在窗体中加入一个DATA控件和一按钮,引用MicrosoftExcel类型库:

 

从"工程"菜单中选择"引用"栏;选择MicrosoftExcel9.0ObjectLibrary;选择"确定"。

 

然后在FORM的LOAD事件中加入:

 

PrivateSubForm_Load()'数据库及表可以另选,本文以Nwind.mdb为例

 

Data1.DatabaseName="C:

\ProgramFiles\MicrosoftVisualStudio\VB98\Nwind.mdb"

 

Data1.RecordSource="Customers"

 

Data1.Refresh

 

EndSub

 

在按钮的CLICK事件中加入

 

PrivateSubCommand1_Click()

 

DimIrow,IcolAsInteger

 

DimIrowcount,IcolcountAsInteger

 

DimFieldlen()'存字段长度值

 

DimxlAppAsExcel.Application

 

DimxlBookAsExcel.Workbook

 

DimxlSheetAsExcel.Worksheet

9

 

SetxlApp=CreateObject("Excel.Application")

 

SetxlBook=xlApp.Workbooks.Add

 

SetxlSheet=xlBook.Worksheets

(1)

 

WithData1.Recordset

 

.MoveLast

 

If.RecordCount<1Then

 

MsgBox("Error没有记录!

")

 

ExitSub

 

EndIf

 

Irowcount=.RecordCount'记录总数

 

Icolcount=.Fields.Count'字段总数

 

ReDimFieldlen(Icolcount)

 

.MoveFirst

 

ForIrow=1ToIrowcount+1

 

ForIcol=1ToIcolcount

 

SelectCaseIrow

 

Case1'在Excel中的第一行加标题

 

xlSheet.Cells(Irow,Icol).Value=.Fields(Icol-1).Name

 

Case2'将数组FIELDLEN()存为第一条记录的字段长

 

IfIsNull(.Fields(Icol-1))=TrueThen

 

Fieldlen(Icol)=LenB(.Fields(Icol-1).Name)

 

'如果字段值为NULL,则将数组Filelen(Icol)的值设为标题名的宽度

 

Else

 

Fieldlen(Icol)=LenB(.Fields(Icol-1))

 

EndIf

10

 

xlSheet.Columns(Icol).ColumnWidth=Fieldlen(Icol)

 

'Excel列宽等于字段长

 

xlSheet.Cells(Irow,Icol).Value=.Fields(Icol-1)

 

'向Excel的CellS中写入字段值

 

CaseElse

 

Fieldlen1=LenB(.Fields(Icol-1))

 

IfFieldlen(Icol)

 

xlSheet.Columns(Icol).ColumnWidth=Fieldlen1

 

'表格列宽等于较长字段长

 

Fieldlen(Icol)=Fieldlen1

 

'数组Fieldlen(Icol)中存放最大字段长度值

 

Else

 

xlSheet.Columns(Icol).ColumnWidth=Fieldlen(Icol)

 

EndIf

 

xlSheet.Cells(Irow,Icol).Value=.Fields(Icol-1)

 

EndSelect

 

Next

 

IfIrow<>1Then

 

IfNot.EOFThen.MoveNext

 

EndIf

 

Next

 

WithxlSheet

 

.Range(.Cells(1,1),.Cells(1,Icol-1)).Font.Name="黑体"

 

'设标题为黑体字

 

.Range(.Cells(1,1),.Cells(1,Icol-1)).Font.Bold=True

11

 

'标题字体加粗

 

.Range(.Cells(1,1),.Cells(Irow,Icol-1)).Borders.LineStyle=xlContinuous

 

'设表格边框样式

 

EndWith

 

xlApp.Visible=True'显示表格

 

xlBook.Save'保存

 

SetxlApp=Nothing'交还控制给Excel

 

EndWith

 

EndSub

 

本程序在中文Windows98、中文VB6下通过。

 

12

 

===================================================

 

VB5.0调用Office97技巧

 

VisualBasic5.0具有简单、易学等特点,深受初学者

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2