vb excelWord格式.docx
《vb excelWord格式.docx》由会员分享,可在线阅读,更多相关《vb excelWord格式.docx(54页珍藏版)》请在冰豆网上搜索。
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对象
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是否打开,如果此标志文件存在,表明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是否打开
创建EXCEL应用类
设置EXCEL可见
\temp\bb.xls"
打开EXCEL工作簿
Setxlsheet=xlBook.Worksheets
(1)'
打开EXCEL工作表
xlApp.Activate'
激活工作表
xlApp.Cells(1,1)="
abc"
'
给单元格1行驶列赋值
运行EXCEL中的启动宏
Else
MsgBox("
EXCEL已打开"
)
EndIf
PrivateSubCommand2_Click()
)<
>
"
由VB关闭EXCEL
执行EXCEL关闭宏
关闭EXCEL工作簿
关闭EXCEL
SetxlApp=Nothing'
释放EXCEL对象
End
2、在D盘根目录上建立一个名为Temp的子目录,在Temp目录下建立一个名为"
bb.xls"
的EXCEL文件。
3、在"
中打开VisualBasic编辑器,在工程窗口中点鼠标键选择插入模块,在模块中输入入下程序存盘:
Subauto_open()
Open"
d:
ForOutputAs#1'
写标志文件
Close#1
Subauto_close()
Kill"
删除标志文件
4、运行VB程序,点击EXCEL按钮可以打开EXCEL系统,打开EXCEL系统后,VB程序和EXCEL分别属两个不同的应用系统,均可同时进行操作,由于系统加了判断,因此在VB程序中重复点击EXCEL按钮时会提示EXCEL已打开。
如果在EXCEL中关闭EXCEL后再点EXCEL按钮,则会重新打开EXCEL。
而无论EXCEL打开与否,通过VB程序均可关闭EXCEL。
这样就实现了VB与EXCEL的无缝连接。
范例一
OptionExplicit
PrivateSubCommand1_Click()
DimxlBookAsExcel.Workbook
DimxlCharAsNewExcel.Chart
DimxlSheetAsNewExcel.Worksheet
'
建立需要的对象
SetxlApp=NewExcel.Application
)
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
删除退出(&
X)菜单
DimiAsInteger
Fori=1ToxlApp.CommandBars("
File"
).Controls.Count
Debug.PrintxlApp.CommandBars("
).Controls(i).Caption
IfLeft$(xlApp.CommandBars("
).Controls(i).Caption,2)="
关闭"
Then
xlApp.CommandBars("
).Controls(i).Visible=False'
Delete
ExitFor
EndIf
Next
显示EXCEL
xlApp.Visible=True
范例二
RichTextBox1
----然后,可以用这些变量来访问在EXCEL应用程序中的从属对象、以及这些对象的属性和方法。
例如:
‘激活EXCEL应用程序
xlApp.Visible=False‘隐藏EXCEL应用程序窗口
SetxlBook=xlApp.Workbooks.Open(strDestination)
‘打开工作簿,strDestination为一个EXCEL报表文件
‘设定工作表
VB借助EXCEL实现表格设计
1、定义EXCEL对象变量
dimxasexcel.application
2、VB中,启动EXCEL
setx=createobject("
excel.application"
3、新建一个EXCEL工作