VB与Excel的数据交换.docx
- 文档编号:25810147
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:11
- 大小:35.89KB
VB与Excel的数据交换.docx
《VB与Excel的数据交换.docx》由会员分享,可在线阅读,更多相关《VB与Excel的数据交换.docx(11页珍藏版)》请在冰豆网上搜索。
VB与Excel的数据交换
第11章VB与Excel的数据交换
Excel是目前非常流行的电子表格软件,很多人都习惯于在EXCEL中处理数据,并在Excel中完成报表输出等功能,但Excel的数据处理功能相对较弱,而VB具有强大的数据处理功能,但报表输出功能相对较弱。
本章以实例的形式介绍VB如何从Excel中获得数据,再将处理后的数据保存到Excel工作表中,并调用Excel中的VBA指令对排版,生成数据报表。
VB中Excel的启动与关闭
11.1.1Excel对象库引用
在VB中调用Excel,首先需要打开VB编程环境“工程”菜单中的“引用”项目,并选取项目中的“MicrosoftExcelobjectlibrary”(Excel版本不同,这个选项中的的版本号可能不一样)。
引用Excel对象库后,对编写代码会带来很多便利。
11.1.2Excel对象声明
EXCEL是以层次结构组织对象的,其对象模型中含有许多不同的对象元素。
编程过程中主要用到以下4个层次的对象。
1.Application对象,即Excel程序本身;
2.WorkBook对象,即Excel的工作簿文件对象;
3.WorkSheets对象,表示的是Excel的工作表对象集;例如:
worksheets
(1)表示第一个工作表。
4.Cells、Range、Rows、Columns对象,分别表示Excel工作表中的单元格对象集、区域对象、行对象集、列对象集。
例如:
Cells(3,5)表示第3行第5列的那个单元格
Range("C5")表示第3行第5列的那个单元格
Range("A1:
C5")表示从A1单元格到C5单元格的矩形区域
Rows
(1)表示第1行
Range("1:
1")表示第1行
Range("1:
10")表示第1到10行的区域
Columns
(1)表示第1列
Range("A:
A")表示第1列
Range("A:
D")表示从第A到D列
11.1.3VB中Excel的启动与关闭
例11-1新建立一个VB的工程,在窗体上添加2个命令按钮(Command1和Command2),2个按钮的Caption分别为“启动Excel”和“关闭Excel”,输入以下代码即可。
DimxlsAsNew'声明一个Excel应用程序对象
DimxbookAsNew'声明一个Excel工作薄对象
DimxsheetAsNew'声明一个Excel工作表象
PrivateSubCommand1_Click()
Setxbook='启动Excel,并将自动创建的工作薄赋给xbook
Setxsheet=
(1)'将第一个工作表赋给xsheet
=True'显示Excel窗口,程序调试阶段显示该窗口非常重要
EndSub
PrivateSubCommand2_Click()
Setxls=Nothing'释放对象变量
Setxbook=Nothing
Setxsheet=Nothing
EndSub
这里将有关对象声明放在通用声明段是为了在两个命令按钮中均可以调用对象xls。
VB与Excel的数据交换
当VB程序启动Excel后,就可以对其中的单元格进行任意处理了。
例11-2随机生成的一组学生成绩数据保存到一个Excel工作表中。
新建一个VB工程,引用“MicrosoftExcelobjectlibrary”对象库后。
在窗体上添加2个按钮(Command1、Command2),Caption属性分别为“生成数据存入Excel”和“保存及并闭Excel”。
代码如下:
DimxlsAsNew
DimxbookAsNew
DimxsheetAsNew
PrivateSubCommand1_Click()
Setxbook=
Setxsheet=
(1)
=True'当程序调试成功以后就可以删除此操作
(1,1)="学号"'填写表头
(1,2)="高等数学"
(1,3)="英语"
(1,4)="大学计算机基础"
(1,5)="平均成绩"
Fori=2To10
(i,1)="'09108"&1000+I'生成学号
Sum=0
Forj=2To4
(i,j)=Int(Rnd()*51)+50
Sum=Sum+(i,j)
Nextj
(i,5)=Round(Sum/3,2)
Nexti
EndSub
PrivateSubCommand2_Click()
("c:
\")'以指定文件名存盘
Setxls=Nothing'释放对象变量
Setxbook=Nothing
Setxsheet=Nothing
MsgBox"请通过资源管理器查询C盘根文件夹下生成的文件"
EndSub
VB对Excel的全面控制
VB不仅可以与Excel实现数据交换,还可以对Excel进行删除或插入表行、列以及完成各种排版操作。
以下程序代码可以实现将例11-1生成的文件打开并执行各种排版操作,同例11-1一样,在窗体上添加2个命令按钮,并通过“工程”菜单“引用”Excel对象库后,录入以下代码:
DimxlsAsNew
DimxbookAsNew
DimxsheetAsNew
PrivateSubCommand1_Click()
Setxbook="c:
\")'打开Excel文件
Setxsheet=
(1)
=True
=xlMinimized'让Excel窗口最小化
Fori=1To5
With(i)'对各列样式进行设置
.AutoFit'最适合列宽
.HorizontalAlignment=xlCenter'水平方向居中
.VerticalAlignment=xlCenter'垂直方向居中
EndWith
Nexti
(1).Insert'在原表第1行前插入一行
(1,1)="XX班级学生成绩表"'写入表标题
("a1:
e1").Merge'合并单元格区域
("1:
1").RowHeight=40'设置第1行行高为40磅
("2:
11").RowHeight=24'设置第2到11行行高为24磅
With(1,1)'设置表标题字体及字号
.="隶书"
.=24
.HorizontalAlignment=xlCenter
.VerticalAlignment=xlCenter
EndWith
WithRange("A2:
E11")'对A2到E11区域设置表格线
.Borders(xlEdgeLeft).LineStyle=xlContinuous'左边线
.Borders(xlEdgeTop).LineStyle=xlContinuous'顶边线
.Borders(xlEdgeBottom).LineStyle=xlContinuous'底边线
.Borders(xlEdgeRight).LineStyle=xlContinuous'右边线
.Borders(xlInsideVertical).LineStyle=xlContinuous'内部垂直线
.Borders(xlInsideHorizontal).LineStyle=xlContinuous'内部水平线
EndWith
MsgBox"排版结束!
"
EndSub
PrivateSubCommand2_Click()
Setxls=Nothing'释放对象变量
Setxbook=Nothing
Setxsheet=Nothing
EndSub
Excel中的VBA
实际上,要全面掌握EXCEL中的VBA语言是非常困难的,因为涉及到太多的对象、属性及其方法,但利用微软公司提供的宏录制功能,学习就变得易如反掌。
宏就是一段程序,存在于Office系列应用软件中,如Word、Excel、PowerPoint、Outlook等。
对这些应用软件的所有操作步骤都可以录制成宏代码,然后再对宏代码进行分析,是学习VBA最好的方法。
下面以Excel为例,介绍宏的录制及学习方法。
如果想学习Excel中对单元格的字体、字号、边框线设置的VBA代码,操作步骤如下:
(1)启动Excel,在任何一个单元格中录入一些内容,选择“工具|宏|录制新宏”,界面如图11-1所示。
所有内容均使用默认,单击“确定”按钮,Excel界面上会多一个宏录制工具栏,如图11-2所示。
(2)选中单元格“C4”,设置字体为“黑体”,字号为24磅,在左右加边框,完成这些操作后单击宏录制工具栏中的停止录制按钮,结束宏录制。
(3)按ALT+F11键进制Excel中的VBA集成开发环境,这个界面和VB的集成开发环境非常相似,如图11-3所示。
(4)展开右侧的“模块”,可以看到其中的“模块1”,这就是刚才录制的宏,双击“模块1”,可以在右侧看到录制的宏代码。
如图11-4所示。
由于宏会对每一个步骤分别进行录制,所以代码看起来特别烦琐,可以将其中没有进行特别处理的代码全部删除,这样就可以得到想要的VBA指令了。
如图11-5所示。
以上代码其实还可以再简化如下:
SubMacro1()
="黑体"
=24
(xlEdgeLeft).LineStyle=xlContinuous
(xlEdgeRight).LineStyle=xlContinuous
EndSub
这里的Selection就是指被选中的单元格或单元格区域,这些代码移植到VB中时,只需要在前面加上Selection所属的父对象名序列即可。
通过以上步骤,就可以学习Excel中对字体、字号、边框线的设置方法,也就可以直接用于VB中对Excel的控制了。
假设VB中Excel应用程序的对象名为xls,以下是部分操作的代码。
(1)显示当前窗口:
=True
(2)更改Excel标题栏:
:
="应用程序调用MicrosoftExcel"
(3)添加新工作簿:
(4)打开已存在的工作簿:
"C:
\")
(5)设置第2个工作表为活动工作表:
(2).Activate或
("Sheet2").Activate
(6)给单元格赋值:
(1,4).Value="第一行第四列"
(7)设置指定列的宽度(单位:
字符个数),以第一列为例:
(8)设置指定行的高度(单位:
磅)(1磅=0.035厘米),以第二行为例:
1/'1厘米
(9)在第8行之前插入分页符:
(1).Rows(8).PageBreak=1
(10)指定边框线宽度:
"B3:
D4").Borders
(2).Weight=3
(11)设置第一行字体属性:
='隶书'
=clBlue
=True
=True
(12)进行页面设置:
a.页眉:
="报表演示"
b.页脚:
="第&P页"
c.页眉到顶端边距2cm:
=2/
d.页脚到底端边距3cm:
=3/
e.顶边距2cm:
=2/
f.底边距2cm:
=2/
g.左边距2cm:
=2/
h.右边距2cm:
=2/
i.页面水平居中:
=True
j.页面垂直居中:
=True
k.打印单元格网线:
=True
(13)拷贝操作:
a.拷贝整个工作表:
拷贝指定区域:
"A1:
E2").Copy
c.从A1位置开始粘贴:
"A1").PasteSpecial
d.从文件尾部开始粘贴:
(14)插入一行或一列:
a.(15)删除一行或一列:
a.(16)打印预览工作表:
(17)打印输出工作表:
(18)工作表保存:
(19)工作表另存为:
("c:
\")
(20)退出Excel:
(21)设置打开默认工作薄数量:
=3
(22)关闭时是否提示保存(true保存;false不保存)
=False
(23)设置冻结窗格:
"B2").Select'先移动光标到B2单元格
=True
(24)设置打印时固定打印内容
="$1:
$1"
而VBA中对Excel的各种操作代码非常地多,这里不可能也没有必要全部列出来。
因为几乎所有的操作都可以通过宏的录制来学习和掌握。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB Excel 数据 交换
![提示](https://static.bdocx.com/images/bang_tan.gif)