vb操作excel大全.docx

上传人:b****6 文档编号:7621245 上传时间:2023-01-25 格式:DOCX 页数:13 大小:21.60KB
下载 相关 举报
vb操作excel大全.docx_第1页
第1页 / 共13页
vb操作excel大全.docx_第2页
第2页 / 共13页
vb操作excel大全.docx_第3页
第3页 / 共13页
vb操作excel大全.docx_第4页
第4页 / 共13页
vb操作excel大全.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

vb操作excel大全.docx

《vb操作excel大全.docx》由会员分享,可在线阅读,更多相关《vb操作excel大全.docx(13页珍藏版)》请在冰豆网上搜索。

vb操作excel大全.docx

vb操作excel大全

VB操纵EXCEL大全

2008-02-2611:

07

范例一

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)菜单

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)

‘设定工作表

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

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

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"

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

如何用VB控制EXCEL生成报表

贾利冬()

做为一种简捷、系统的Windows应用程序开发工具,VisualBasic6具有强大的数据处理功能,提供了多种数据访问方法,可以方便地存取MicrosoftSQLServer、Oracle、XBase等多种数据库,被广泛应用于建立各种信息管理系统。

但是,VB缺乏足够的、符合中文习惯的数据表格输出功能,虽然使用CrystalReport控件及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

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

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

'标题字体加粗

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

'设表格边框样式

EndWith

xlApp.Visible=True'显示表格

xlBook.Save'保存

SetxlApp=Nothing'交还控制给Excel

EndWith

EndSub

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

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

VB5.0调用Office97技巧

VisualBasic5.0具有简单、易学等特点,深受初学者的欢迎,但也有一些不如人意的地方。

例如,不能像Word97那样进行拼写检查,不能像Excel97那样具有很多的函数。

如果我们能将Word97和Excel97的功能使用在VisualBasic5.0中,就可以使VB达到锦上添花的目的。

  我们知道所有Office97应用程序都提供了ActiveX对象,我们可以在VisualBasic5.0中使用它们。

  调用Word97

  要想在VB中调用Word97,首先要打开VB的"工程"菜单中的"引用"项目,并在该项目对话框中选定"MicrosoftWord8.0ObjectLibrary"就可以了。

  下面我们举例说明调用Word97中的"拼写检查"和"单词统计"功能。

首先新建一个工程并在窗体上放置一个TextBox控件和两个CommandButton控件,然后添入如下的代码:

  OptionExplicit

  DimDocAsNewDocument

  DimVisiAsBoolean

图1调用Word97

  ′拼写检查

  PrivateSubCommand1-Click()

  Form1.Caption="拼写检查"

  Doc.Range.Text=Text1

  ′确定范围

  Doc.Application.Visible=True′将Word97变为可见

  AppActivateDoc.Application.Caption

  ′激活Word97

  Doc.Range.CheckSpelling

  ′拼写检查

  Text1=Doc.Range.Text

  Text1=Left(Text1,Len(Text1)-1)

  AppActivateCaption

  EndSub

  ′统计单词数

  PrivateSubCommand2-Click()

  DimDlgAsWord.Dialog

  Doc.Range=Text1.Text

  SetDlg=Doc.Application.Dialogs

  (wdDialogDocumentStatistics)

  Dlg.Execute′统计单词和字符

  Form1.Caption="单词数:

"&Str(Dlg.Words)&"词"

  &Str(Dlg.Characters)&"字符"′显示统计结果

  EndSub

Top

范例三

  PrivateSubForm-Load()

  Form1.Caption="调用Word97"

  Text1.Text=""

  Command1.Caption="拼写检查"

  Command2.Caption="统计单词"

  ′使应用程序可见

  Visi=Doc.Application.Visible

  EndSub

  ′关闭应用程序

  PrivateSubForm-Unload(CancelAsInteger)

  IfVisiThen′关闭文件

  Doc.Closesavechanges:

=False

  Else

  Doc.Application.Quitsavechanges:

=False′关闭Word97

  EndIf

  EndSub

  运行中的窗体如图1所示。

  图2调用Excel97

  调用Excel97

  使用ExcelSheet对象的技术可以处理可变数量的数据,并将结果最后送到你的VisualBasic应用程序中。

例子如下:

  新建一个工程并在新建的窗体上放置两个TextBox控件和一个CommandButton控件及六个Label控件。

建设中的窗体如图2所示。

  程序代码如下:

  OptionExplicit

  PrivateSubCommand1-Click()

  DimxObjectAsObject

  ′调用Excel97

  SetxObject=CreateObject("Excel.Sheet")

  SetxObject=xObject.Application.ActiveWorkbook.ActiveSheet

  xObject.Range("A1").Value=Text1.Text′将数值送入Excel97的A1单元格

  xObject.Range("A2").Value=Text2.Text′将数值送入Excel97的A2单元格

  xObject.Range("A3").Formula="=MAX(A1,A2)"′将最大值送入A3单元格

  xObject.Range("A4").Formula="=ATAN(A1/A2)*180/PI()"′将反正切值送入A4单元格

  ′显示计算的结果

  Label1.Caption=xObject.Range("A3").Value

  Label2.Caption=xObject.Range("A4").Value

  SetxObject=Nothing

  EndSub

  PrivateSubForm_Load()

  Text1.Text=""

  Text2.Text=""

  Label1.Caption=""

  Label2.Caption=""

  EndSub

  该程序的作用是:

首先在两个文本框(Text1和Text2)输入数值并分别将输入的数值送入Excel97的"A1"和"A2"单元格中,然后用Excel97中的"Max()"函数将计算的结果送入"A3"单元格中;用反正切函数"ATAN()"进行计算并将结果送入"A4"单元格中,最后输出。

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

浅谈Excel的VB编程

Excel是一个优秀的电子表格软件,如果你编的程序需要以报表的形式显示最终结果,它会是个不错的选择。

你可以通过VB控制Excel显示数据表格。

如果你不愿意深入了解Excel这些琐碎的细节,也不是没有权宜之计:

你可以打开Excel中的工具→宏→录制新宏,然后进行手工操作,结束后把所录的宏代码贴进你的VB程序就行。

这样得到的程序一般都能正常运行,但其中的宏代码往往不够简洁,效率和可读性都不高。

----Excel编程碰到的第一个问题是表头。

有时表头的形式比较复杂,需要横向或纵向合并单元格。

请放心,只要没有斜杠,Excel都能应付得了。

----例如合并A2~A5这4个单元格,你录制的宏代码会是这样:

Range("A2:

A5").Select

WithSelection

.HorizontalAlignment=xlCenter

.VerticalAlignment=xlBottom

.WrapText=False

.Orientation=0

.AddIndent=False

.ShrinkToFit=False

.MergeCells=False

EndWith

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