完整word版VB中引用Excel属性.docx
《完整word版VB中引用Excel属性.docx》由会员分享,可在线阅读,更多相关《完整word版VB中引用Excel属性.docx(14页珍藏版)》请在冰豆网上搜索。

完整word版VB中引用Excel属性
VB中引用Excel属性
1.创建Excel对象
eole=CREATEOBJECT(′Excel.application′)
2.添加新工作簿
eole。
Workbooks。
add
3.设置第3个工作表为激活工作表
eole.Worksheets(″sheet3″).Activate
4.打开指定工作簿
eole。
Workbooks。
Open(″c:
\temp\ll.xls″)
5.显示Excel窗口
eole。
visible=.t。
6.更改Excel标题栏
eole。
Caption=″VFP应用程序调用MicrosoftExcel″
7.给单元格赋值
eole。
cells(1,4).value=XM(XM为数据库字段名)
8.设置指定列的宽度(单位:
字符个数)
eole.ActiveSheet.Columns
(1).ColumnWidth=5
9.设置指定行的高度(单位:
磅)
eole.ActiveSheet.Rows
(1)。
RowHeight=1/0.035
(设定行高为1厘米,1磅=0.035厘米)
10.在第18行之前插入分页符
eole.Worksheets(″Sheet1″).Rows(18).PageBreak=1
11.在第4列之前删除分页符
eole.ActiveSheet.Columns(4)。
PageBreak=0
12.指定边框线宽度(Borders参数如下)
ole.ActiveSheet.Range(″b3:
d3″)。
Borders
(2)。
Weight=3
13.设置四个边框线条的类型
eole。
ActiveSheet。
Range(″b3:
d3″)。
Borders
(2).LineStyle=1
(其中Borders参数:
1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:
1与7-细实、2-细虚、4-点虚、9-双细实线)
14.设置页眉
eole。
ActiveSheet。
PageSetup.CenterHeader=″报表1″
15.设置页脚
eole.ActiveSheet.PageSetup。
CenterFooter=″第&P页″
16.设置页眉到顶端边距为2厘米
eole。
ActiveSheet。
PageSetup.HeaderMargin=2/0。
035
17.设置页脚到底边距为3厘米
eole。
ActiveSheet.PageSetup。
FooterMargin=3/0.035
18.设置顶边距为2厘米
eole。
ActiveSheet。
PageSetup.TopMargin=2/0.035
19.设置底边距为4厘米
eole。
ActiveSheet。
PageSetup。
BottomMargin=4/0.035
20.设置左边距为2厘米
veole。
ActiveSheet。
PageSetup。
LeftMargin=2/0。
035
21.设置右边距为2厘米
eole。
ActiveSheet.PageSetup。
RightMargin=2/0.035
22.设置页面水平居中
eole。
ActiveSheet。
PageSetup.CenterHorizontally=.t。
23.设置页面垂直居中
eole.ActiveSheet。
PageSetup.CenterVertically=。
t.
24.设置页面纸张大小(1-窄行851139-宽行1411)
eole.ActiveSheet。
PageSetup.PaperSize=1
25.打印单元格网线
eole.ActiveSheet.PageSetup.PrintGridlines=.t.
26.拷贝整个工作表
eole.ActiveSheet.UsedRange.Copy
27.拷贝指定区域
eole.ActiveSheet.Range(″A1:
E2″)。
Copy
28.粘贴
eole。
WorkSheet(″Sheet2″).Range(″A1″)。
PasteSpecial
29.在第2行之前插入一行
eole.ActiveSheet.Rows
(2).Insert
30.在第2列之前插入一列
eole。
ActiveSheet。
Columns
(2).Insert
31.设置字体
eole。
ActiveSheet.Cells(2,1).Font.Name=″黑体″
32.设置字体大小
eole.ActiveSheet。
Cells(1,1).Font。
Size=25
33.设置字体为斜体
eole。
ActiveSheet。
Cells(1,1)。
Font。
Italic=.t。
34.设置整列字体为粗体
eole.ActiveSheet.Columns
(1)。
Font.Bold=.t。
35.清除单元格公式
eole。
ActiveSheet.Cells(1,4)。
ClearContents
36.打印预览工作表
eole.ActiveSheet.PrintPreview
37.打印输出工作表
eole.ActiveSheet。
PrintOut
38.工作表另为
eole。
ActiveWorkbook.SaveAs(″c:
\temp\22.xls″)
39.放弃存盘
eole。
ActiveWorkbook。
saved=.t。
40.关闭工作簿
eole。
Workbooks.close
41.退出Excel
eole.quit
-—-----—-————----—————-—-———-—--————------——--—--—--—-—--—---——----—-———————-—-—-—--—------—--—-
◆访问EXCEL:
ExcelSheet=GetObject(’’,'Excel。
Sheet')
返回结果为类,则成功。
例:
ExcelSheet=GetObject('’,'Excel.Sheet’)
IfType("ExcelSheet")#’O’THEN
=MessageBox("访问Excel失败!
请检查你的系统是否正确安装Excel软件!
",48,"Excel不正常")
RETURN
ENDIF
◆创建EXCEL实例:
oExcel=CreateObject("Excel.Application")
该实例创建后,任何对EXCEL的操作都针对该实例进行,关闭EXCEL后应释放该实例变量:
RELEASEoExcel
◆打开已存在的EXCEL文件:
oExcel。
WorkBooks。
Open("&lcFileName")&&lcFileName为Excel文件名
打开带有读写密码的文件:
oExcel.WorkBooks.Open(”&lcFileName”,,。
F.,,”&R_Pwd","&W_Pwd")&&lcFileName—文件名,R_Pwd-读密码,W_Pwd-写密码,第二个参数表示读写方式:
。
T.只读,。
F.读写
◆设置新增工作薄的工作表数:
oExcel.SheetsInNewWorkbook=1&&新建工作表数量定为1个
◆新增EXCEL工作薄:
oExcel.WorkBooks。
Add
◆当前工作薄工作表总数:
oExcel。
WorkSheets。
Count&&如:
lnSheetCnt=oExcel.WorkSheets。
count
◆新增EXCEL工作表:
oExcel.Sheets.Add&&不带参数为增加至当前工作表之前
在指定工作表后新建工作表:
oExcel。
Sheets.Add(,oExcel。
Sheets(lnSheet),1,-4167)&&lnSheet为指定表号
在最后工作表后新建工作表:
oExcel.Sheets.Add(,lnSheetsCnt,1,—4167)&&lnSheetCnt为工作表总数
◆激活工作表:
oExcel.WorkSheets("Sheet1")。
Activate&&激活工作表1
删除工作表:
oExcel.WorkSheets("Sheet2").Delete&&删除工作表2
命名工作表:
oExcel.WorkSheets("Sheet3”).Name=”新表"&&重命名工作表3
◆使EXCEL可视:
oExcel。
Vsible=。
T。
◆Excel的窗口控制:
oExcel.WindowState=—4140&&最小化=—4140,最大化=-4137,还原=—4143
◆后台操作报警关闭:
oExcel。
DisplayAlerts=。
F。
&&关闭(。
F.)打开(.T。
)
◆设置工作薄的标题:
oExcel。
Caption="Vfp控制Excel操作”
◆当前工作薄换名存盘:
oExcel.ActiveWorkBook.SaveAs(”&lcFileName")
换名存为文本文件:
oExcel.ActiveWorkBook.Saveas("&lcFileName",-4158)
◆工作薄存盘:
oExcel.WorkBooks。
Save
◆关闭工作薄:
oExcel.WorkBooks。
Close
◆退出EXCEL:
oExcel.Quit&&关闭EXCEL后通常应释放实例变量:
ReleaseoExcel
◆打印当前工作簿:
oExcel.ActiveWorkBook.PrintOut(1,oExcel.WorkSheets.count,1,.T。
)
*默认直接打印整个工作簿:
oExcel.ActiveWorkBook.PrintOut()
*参数1—数值:
当前工作簿中进行打印的起始工作表号(默认1)
*参数2—数值:
当前工作簿中进行打印的结束工作表号(默认最末)
*参数3-数值:
打印份数(默认1)
*参数4—是预览打印还是直接打印:
.T。
—预览打印,.F.—直接打印(默认。
F.)
◆打印当前工作表:
oExcel。
ActiveSheet。
PrintOut()&&共八个参数
*参数1—数值:
起始页号,省略则默认为开始位置
*参数2—数值:
终止页号,省略则默认为最后一页
*参数3-数值:
打印份数,省略则默认为1份
*参数4-逻辑值:
是否预览,省略则默认为直接打印(.F.)
*参数5—字符值:
设置活动打印机名称,省略则为默认打印机
*参数6—逻辑值:
是否输出到文件,省略则默认为否(。
F.),若选.T。
且参数8为空,则Excel提示输入要输出的文件名
*参数7-逻辑值:
输出类型,省略则默认为(.T.)逐份打印,否则逐页打印
*参数8—字符值:
当参数6为。
T。
时,设置要打印到的文件名
◆预览当前工作表:
oExcel.ActiveSheet。
PrintPreview
◆当前工作表页面设置:
oExcel.ActiveSheet。
PageSetup&&如:
WithoExcel.ActiveSheet.PageSetup
。
CenterFooter=”第”+"&P"+”页共”+"&N”+”页”&&页脚中间
.LeftFooter="制表人:
”+AllTrim(lcUserName)&&页脚左边
。
rightfooter=”制表日期:
"+Dtoc(Date())&&页脚右边
.TopMargin=2.5/0。
035&&顶边距
.BottomMargin=2.5/0.035&&底边距
.LeftMargin=1.4/0.035&&左边距
。
RightMargin=0。
5/0。
035&&右边距
。
FooterMargin=3。
5/0.035&&脚高距
。
PrintTitleRows="$1:
$3”&&固定打印的顶端标题行(第1-3行)
。
Orientation=1&&打印方向:
1为纵向,2为横向
.PaperSize=9&&纸张类型:
A4(注意:
不同打印机与版本可能有不同)
.PrintQuality=180&&打印精度
EndWith
◆从包含大量内含公式的EXCEL文件导至DBF中时,直接转换会出现致命错误,这时可选择将EXCEL另存为文本文件再导至DBF中可保数据不丢失:
oExcel.WorkBooks。
Open(’D:
\123.xls')
oExcel。
ActiveWorkBook.Saveas(’D:
\123.txt',—4158)&&注意参数—4158不能错
◆若判断EXCEL或某个XLS文件是否已经打开(避免不可预知的错误发生):
LOCALlOldSetOpt,mChanNum
lOldSetOpt=DDESetOption("SAFETY”)
=DDESetOption(”SAFETY”,.F。
)
mChanNum=DDEInitiate('Excel’,'SYSTEM’)&&EXCEL是否已经打开
**mChanNum=DDEInitiate('Excel',’&lcFileName')&&lcFileName某XLS文件名,如:
D:
\123.XLS
IFmChanNum<〉—1
=messagebox('程序EXCEL已经打开,请先将其关闭!
',64,’系统提示!
')
**=messagebox('文件’+lcFileName+’已经打开,请先将其关闭!
’,64,’系统提示!
’)
=DDETerminate(mChanNum)
=DDESetOption("SAFETY",lOldSetOpt)
RETURN
ENDIF
SetxlApp=CreateObject("Excel.Application")'创建EXCEL对象
SetxlBook=xlApp.Workbooks.Open(App。
Path& ”\文件名.xls”)'打开已经存在的EXCEL工件簿文件
xlApp.Visible=True'设置EXCEL对象可见(或不可见)
SetxlSheet=xlBook.Worksheets(”sheel1”)’设置活动工作表,sheet1表示表名,可以使用字符型变量代替。
xlSheet。
Activate'激活工作表,让它处于前台活动中。
xlBook.RunAutoMacros(xlAutoOpen)'运行自动开启宏Macro1(),在EXCEL中加入以下宏
’Subauto_open()’这是VBA中的自动打开时运行的宏
’您要宏自动运行的程序,比如可以call其它的宏,这样VB在打开EXCEL时,使用上面的语句就可以先运行这个宏
’EndSub
xlSheet。
Cells.Item(行数,列数)=值 ’给EXCEL对象中的表的单元格附值。
xlSheet。
Rows(”7:
7")。
Select ’选定EXCEL表的第7行
xlApp.Selection。
Deleteshift:
=xlUp’删除选定的行
xlSheet.Rows(7)。
Insert’在第7行处插入一行
ActiveSheet。
PageSetup。
CenterHeader="页眉内容"’给页眉附值
xlSheet。
Range(”f7:
h7”)。
Select '选定f7:
h7之间的单元格,下面的程序是把它们合并。
Application。
CutCopyMode=False
WithxlApp。
Selection
.HorizontalAlignment=xlGeneral
.VerticalAlignment=xlCenter
.WrapText=False
.Orientation=0
。
AddIndent=False
。
IndentLevel=0
。
ShrinkToFit=False
。
ReadingOrder=xlContext
.MergeCells=True
EndWith
-—--—----———--—-————--—-—---——-----——-————--—--—-——----—-———-—--—-—---—-———--—----—-——-——————-———-—————--—---
刪除Excel中的全部宏
PrivateFunctionDelVba()
Application.DisplayAlerts=False
IfActiveWorkbook。
VBProject.Protection=0And_
ActiveWorkbook。
ProtectStructure=FalseThen
'刪除程式碼
DimOJBAsObject
ForEachOJBInActiveWorkbook.VBProject。
VBComponents
IfOJB.Type〈>100Then
ActiveWorkbook。
VBProject.VBComponents。
RemoveOJB
Else
OJB。
CodeModule。
DeleteLines1,OJB.CodeModule.CountOfLines
EndIf
Next
’刪除宏表
ForEachNxInActiveWorkbook.Excel4MacroSheets
Nx。
Delete
Next
ActiveWorkbook。
CloseSaveChanges:
=True
Else
DimFileNameAsString,FuNameAsString
fname=ActiveWorkbook.Name
FuName=ActiveWorkbook。
FullName
Sheets。
Copy
Workbooks(fname)。
CloseSaveChanges:
=False
'刪除程式碼
ForEachOJBInActiveWorkbook。
VBProject.VBComponents
IfOJB.Type<〉100Then
ActiveWorkbook.VBProject.VBComponents。
RemoveOJB
Else
OJB.CodeModule。
DeleteLines1,OJB。
CodeModule。
CountOfLines
EndIf
Next
’刪除宏表
ForEachNxInActiveWorkbook。
Excel4MacroSheets
Nx.Delete
Next
ActiveWorkbook。
CloseSaveChanges:
=True,FileName:
=FuName
EndIf
Application.DisplayAlerts=True
EndFunction
——-———-—-—-——-—--———--——-——--—————--——-——--—----—--—-—-———-—------——---————-———----------——-—-————————————-——
引用EXCEL
引用MicrosoftVisualBasicforApplicationsExtensibility
PrivateSubCommand1_Click()
DimxlAsExcel。
Application
DimbkAsWorkbook
DimxlcompAsVBComponent
Setxl=NewExcel.Application
Setbk=xl。
Workbooks.Add
OnErrorResumeNext
Setxlcomp=xl.VBE.VBProjects
(1).VBComponents。
Add(vbext_ct_StdModule)
IfErr。
Number〈〉0ThenMsgBoxErr。
Description&Chr(10)&"请设置EXCEL中的宏安全性-—-可靠来源":
ExitSub
xlcomp。
CodeModule.AddFromString"subgg()”&Chr(10)_
&"msgbox"&”"””&”OK”&"”””&Chr(10)_
&”endsub”
xl。
Visible=True
xl。
Run"gg”
EndSub
以上是exel,下面是word哈哈,这个问题我自己解决了,我这个打开别人的文件并且加入了宏,实现痕迹保留,注意这个技术不许用来开发宏病毒!
!
PrivateSubCommand1_Click()
DimwdAsWord。
Application
DimmydocAsDocument
DimxlcompAsVBComponent
Setwd=NewWord.Application
Setmydoc=wd.Documents.Open(”D:
\DocumentsandSettings\pw-panyg\MyDocuments\f.doc")
OnErrorResumeNext
Setxlcomp=wd.VBE.VBProjects
(1).VBComponents.Add(vbext_ct_StdModule)
IfErr.Number<>0ThenMsgBoxErr。
Description&Chr(10)&"请设置word中的宏安全性-——可靠来源":
ExitSub
xlcomp.CodeModule。
AddFromString"subMySub()"&Chr(10)_
&"WithActiveDocument”&Chr(10)_
&”。
TrackRevisions=Tru