完整word版VB中引用Excel属性.docx

上传人:b****8 文档编号:30396488 上传时间:2023-08-14 格式:DOCX 页数:14 大小:22.78KB
下载 相关 举报
完整word版VB中引用Excel属性.docx_第1页
第1页 / 共14页
完整word版VB中引用Excel属性.docx_第2页
第2页 / 共14页
完整word版VB中引用Excel属性.docx_第3页
第3页 / 共14页
完整word版VB中引用Excel属性.docx_第4页
第4页 / 共14页
完整word版VB中引用Excel属性.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

完整word版VB中引用Excel属性.docx

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

完整word版VB中引用Excel属性.docx

完整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

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1