VB操作Excel.docx

上传人:b****4 文档编号:820167 上传时间:2022-10-13 格式:DOCX 页数:14 大小:20.98KB
下载 相关 举报
VB操作Excel.docx_第1页
第1页 / 共14页
VB操作Excel.docx_第2页
第2页 / 共14页
VB操作Excel.docx_第3页
第3页 / 共14页
VB操作Excel.docx_第4页
第4页 / 共14页
VB操作Excel.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

VB操作Excel.docx

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

VB操作Excel.docx

VB操作Excel

VB操作Excel

在工程中引用MicrosoftExcel类型库从"工程"菜单中选择"引用"栏;选择MicrosoftExcelObjectLibrary(EXCEL2000),然’后选择"确定"。

‘打开Excel文件

DimxlAppAs'定义EXCEL类

DimxlBookAs'定义工件簿类

DimxlsheetAs'定义工作表类

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

SetxlBook=+"\银行导出表.xls")'打开EXCEL工作簿

Setxlsheet=

(1)'打开EXCEL工作表

'激活工作表

‘对EXCEL的各项操作

‘获得数据的行数

‘在第一列前增加一行

(1).Insert

‘关闭Excel文件

(True)'关闭EXCEL工作簿

'关闭EXCEL

SetxlApp=Nothing'释放EXCEL对象

VB中操作Excel的一般做法(读取)

1、定义Excel操作变量

DimobjExcelFileAs

DimobjWorkBookAs

DimobjImportSheetAs

2、打开Excel进程,并打开目标Excel文件

SetobjExcelFile=New

=False

SetobjWorkBook=objImportSheet=

(1)

3、获取Excel有效区域的行和列数

intLastColNum==、逐行读取Excel中数据

由于前两行为Header部分,所以需要从第三行读取

如果第1到第10个单元格的值均为空或空格,则视为空行

ForintCountI=3TointLastRowNum

''CheckifEmptyDataRow

blnNullRow=True

ForintI=1To10

IfTrim$(intCountI,intI).Value)<>""Then

blnNullRow=False

EndIf

NextintI

若不是空行,则进行读取动作,否则继续向后遍历Excel中的行

IfblnNullRow=FalseThen

获取单元格中的数据,做有效性Check,并将合法数据创建为实体存入对象数组中

(intCountI,1).Value

……

EndIf

NextintCountI

5、退出Excel进程,并关闭Excel相关操作对象

SetobjWorkBook=Nothing

SetobjImportSheet=Nothing

SetobjExcelFile=Nothing

vb操作Excel

*************一个标准的

DimxlAppAs

DimxlBookAs

DimxlSheetAs

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

SetxlBook="d:

\")'打开已经存在的EXCEL工件簿文件

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

SetxlSheet=("Sheet1")'设置活动工作表

'(Row,Col)=值'给单元格(row,col)赋值

(5,5)="Neok"

'打印工作表

(True)'关闭工作簿

'结束EXCEL对象

SetxlApp=Nothing'释放xlApp对象

(xlAutoOpen)'运行EXCEL启动宏

(xlAutoClose)'运行EXCEL关闭宏

**********************

启动Excel

DimobjExcelAs

SetobjExcel=CreateObject("")

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

创建有一个工作表的工作簿

DimobjWorkBookAs

=1

SetobjWorkbook=

打开已经存在的EXCEL工件簿文件

SetobjWorkbook="文件名")

设置活动工作表

DimobjSheetAs

SetobjSheet=("表名")

给单元格(row,col)赋值

(row,col)=值

给合并的单元格赋值,如(A3:

A9)

("A3:

A9")=值

运行EXCEL宏

("宏名")

插入一行

("1:

1").InsertShift:

=xlDown

保存EXCEL文件

另存为

("文件名")

关闭工作簿

(True)

结束EXCEL对象

如果要求在退出应用程序后EXCEL不提示用户是否保存已修改的

文件,则可使用如下语句:

=False

=True

释放objExcel对象

SetobjExcel=Nothing

注意:

在工程中运用Excel对象模型,必须引用ExcelObjectLibrary

工程-->引用加入ExcelObjectLibrary在VB中操作EXCEL对象,如为可见,在操作中手式关闭EXCEL,而VB程序无法知道,如果此时使用EXCEL对象,则VB程序会产生错误。

形成VB程序无法完全控制EXCEL的状况,使得VB与EXCEL脱节。

在编程时应注意加以防止出现出现这种情况。

全面控制Excel

首先创建Excel对象,使用ComObj:

DimExcelIDas

SetExcelIDasnew

 

1)显示当前窗口:

 :

=True;

2)更改Excel标题栏:

 :

='应用程序调用MicrosoftExcel';

3)添加新工作簿:

 

4)打开已存在的工作簿:

 'C:

\Excel\');

5)设置第2个工作表为活动工作表:

 [2].Activate;

或['Sheet2'].Activate;

6)给单元格赋值:

 [1,4].Value:

='第一行第四列';

7)设置指定列的宽度(单位:

字符个数),以第一列为例:

 

8)设置指定行的高度(单位:

磅)(1磅=0.035厘米),以第二行为例:

 1厘米

9)在第8行之前插入分页符:

 [1].Rows[8].PageBreak:

=1;

10)在第8列之前删除分页符:

 

11)指定边框线宽度:

 'B3:

D4'].Borders[2].Weight:

=3;

 1-左2-右3-顶4-底5-斜(\)6-斜(/)

12)清除第一行第四列单元格公式:

 

13)设置第一行字体属性:

 '隶书';

  :

=clBlue;

 :

=True;

 

14)进行页面设置:

a.页眉:

 '报表演示';

b.页脚:

 '第&P页';

c.页眉到顶端边距2cm:

 

d.页脚到底端边距3cm:

 

e.顶边距2cm:

 

f.底边距2cm:

 

g.左边距2cm:

 

h.右边距2cm:

 

i.页面水平居中:

 

j.页面垂直居中:

 

k.打印单元格网线:

 

15)拷贝操作:

a.拷贝整个工作表:

 

b.拷贝指定区域:

 'A1:

E2'].Copy;

c.从A1位置开始粘贴:

 'A1'].PasteSpecial;

d.从文件尾部开始粘贴:

 

16)插入一行或一列:

 

17)删除一行或一列:

 

18)打印预览工作表:

 

19)打印输出工作表:

 

20)工作表保存:

 

   

 Endif

21)工作表另存为:

 ('C:

\Excel\');

22)放弃存盘:

 

23)关闭工作簿:

 

24)退出Excel:

 ;

25)设置工作表密码:

 "123",DrawingObjects:

=True,Contents:

=True,Scenarios:

=True

26)EXCEL的显示方式为最大化

  

27)工作薄显示方式为最大化

 

28)设置打开默认工作薄数量

 =3

29)'关闭时是否提示保存(true保存;false不保存)

 =False

30)设置拆分窗口,及固定行位置

 

 

31)设置打印时固定打印内容

 "$1:

$1"

32)设置打印标题

 ""

33)设置显示方式(分页方式显示)

 

34)设置显示比例

 

35)让Excel响应DDE请求

 用VB操作EXCEL示例代码

 PrivateSubCommand3_Click()

 OnErrorGoToerr1

 DimiAsLong

 DimjAsLong

 DimobjExlAs'声明对象变量

 =11'改变鼠标样式

 SetobjExl=New'初始化对象变量

 =1 '将新建的工作薄数量设为1

 '增加一个工作薄

 "book1" '修改工作薄名称 

 "book1")‘增加第二个工作薄在第一个之后

 "book2" 

 "book2")‘增加第三个工作薄在第二个之后

 "book3" 

 

 ("book1").Select '选中工作薄

 Fori=1To50'循环写入数据

 Forj=1To5

 Ifi=1Then

   "@" '设置格式为文本 

   (i,j)="E"&i&j

 Else

   (i,j)=i&j

 EndIf

 Next

 Next

 ("1:

1").Select'选中第一行

 '设为粗体

  '设置字体大小

  '自动调整列宽 

  '拆分第一行

  '拆分列

 '固定拆分"$1:

$1" '设置打印固定行

 ""'打印标题"打印时间:

"&_

 Format(Now,"yyyy年mm月dd日hh:

MM:

ss")

 '设置显示方式

  '设置显示大小

 '给工作表加密码

 "123",DrawingObjects:

=True, _

 Contents:

=True,Scenarios:

=True

 

 =True '使EXCEL可见

 'EXCEL的显示方式为最大化

 '工作薄显示方式为最大化

 =3 '将默认新工作薄数量改回3个 

 SetobjExl=Nothing'清除对象

 =0'修改鼠标

 ExitSub

 err1:

   =3

 

 =False '关闭时不提示保存

 '关闭EXCEL

 =True'关闭时提示保存

 SetobjExl=Nothing

 =0

 EndSub

调用Excel制作任意表格

在VB中制作报表一般来讲有三种方法:

1、直接使用中自带的DataReport来做,这种方法有很大的局限性,对于比较规则的报表,但对于比较复杂的报表,比如说一张报表,上部分是人员的工资,下部分是人员的各日的考勤,使用这种方法就无能为力。

2、使用直接的打印方法,即,这种方法直接向打印机打印,就象过去使用Foxpro似的,需要进行打印机定位,并且在Windows下,不同的字符数字所占的宽度也

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

当前位置:首页 > 考试认证 > 其它考试

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

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