一、Excel是以层次结构组织对象的,其对象模型中含有许多不同的对象元素。
第一层:Application 对象,表示Excel本身;
第二层:Workbooks对象集,表示Excel的工作薄文件;
第三层:Worksheets对象集,表示Excel的一个工作表;
第四层:Cells 和Range对象,表示Excel工作表中的单元格。
二、创建对象:
Dim xlApp as Excel.Application
Set xlApp as new Excel.Application
三、属性:
1)显示当前窗口(设置Excel对象可见/不可见):
xlApp.Visible=True;
2)更改Excel标题栏:
xlApp.Caption=“应用程序调用Microsoft Excel”;
3)添加(新建)工作薄文件:
xlApp.Workbooks.Add
4)打开已存在的Demo.xls工作薄文件:
xlApp.Workbooks.Open(‘C:\Excel\Demo.xls’)
5)设置第2个工作表为活动工作表:
xlApp.Worksheets(2).Activate 或者 xlApp.Worksheets('Sheet2').Activate
6)给单元格赋值:
xlApp.Cells(1,4).Value="第一行第四列"
7)设置指定列的宽度(单位:字符个数),以第一列为例:
xlApp.ActiveSheet.Columns(1).ColumnsWidth=5
8)设置指定行的高度(单位:磅,1磅=0.035厘米),以第三行为例:
xlApp.ActiveSheet.Rows(2).RowHeight=1
9)在第8行之前插入分页符:
xlApp.WorkSheets(1).Rows(8).PageBreak=1
10)在第8列之前删除分页符:
xlApp.ActiveSheet.Columns(8).PageBreak=0
11)指定边框线宽度
xlApp.ActiveSheet.Range('B3:D4').Borders(2).Weight=3
(其中Borders参数:1-左 、 2-右 、3-顶 、 4-底 、 5-斜( \ ) 、6-斜( / );LineStyle值:1与7--细实、2--细虚、4--点虚、9--双细实线)
12)清除第一行第四列单元格公式:
xlApp.ActiveSheet.Cells(1,4).ClearContents
13)设置第一行字体属性:
xlApp.ActiveSheet.Rows(1).Font.Name='楷体'
xlApp.ActiveSheet.Rows(1).Font.Color='clBlue'
xlApp.ActiveSheet.Rows(1).Font.Bold='True'
xlApp.ActiveSheet.Rows(1).Font.UnderLine='True'
14)进行页面设置:
a.设置页眉
xlApp.ActiveSheet.PageSetup.CenterHeader= '报表演示'
b.页脚
xlApp.ActiveSheet.PageSetup.CenterFooter= '第&P页'
c.页眉到顶端边距2cm
xlApp.ActiveSheet.PageSetup.HeaderMargin= 2
d.页脚到底端边距3cm
xlApp.ActiveSheet.PageSetup.HeaderMargin= 3
e.顶边距2cm
xlApp.ActiveSheet.PageSetup.TopMargin =2
f.底边距2cm
xlApp.ActiveSheet.PageSetup.BottomMargin= 2
g.左边距2cm
xlApp.ActiveSheet.PageSetup.LeftMargin =2
h.右边距2cm
xlApp.ActiveSheet.PageSetup.RightMargin= 2
i.页面水平居中
xlApp.ActiveSheet.PageSetup.CenterHorizontally= 2
j.页面垂直居中
xlApp.ActiveSheet.PageSetup.CenterVertically= 2
k.打印单元格网线
xlApp.ActiveSheet.PageSetup.PrintGridLines= True
15) 拷贝操作:
a.拷贝整个工作表
xlApp.ActiveSheet.Used.Range.Copy
b.拷贝指定区域
xlApp.ActiveSheet.Range('A1:E2' ).Copy
c.从A1位置开始粘贴
xlApp.ActiveSheet.Range('A1').PasteSpecial
d.从文件尾部开始粘贴
xlApp.ActiveSheet.Range.PasteSpecial
16) 插入一行或一列:
a. xlApp.ActiveSheet.Rows(2).Insert
b. xlApp.ActiveSheet.Columns(1).Insert
17) 删除一行或一列:
a. xlApp.ActiveSheet.Rows(2).Delete
b. xlApp.ActiveSheet.Columns(1).Delete
18) 打印预览工作表:
xlApp.ActiveSheet.PrintPreview
19) 打印输出工作表:
xlApp.ActiveSheet.PrintOut
20) 工作表保存:
If not xlApp.ActiveWorkBook.Saved then
xlApp.ActiveSheet.PrintPreview
End if
21) 工作表另存为Demo1.xls:
xlApp.SaveAs( 'C:\Excel\Demo1.xls' )
22) 放弃存盘:
xlApp.ActiveWorkBook.Saved = True
23) 关闭工作簿:
xlApp.WorkBooks.Close
24) 退出 Excel:
xlApp.Quit
25) 设置工作表密码:
xlApp.ActiveSheet.Protect"123", DrawingObjects:=True, Contents:=True, Scenarios:=True
26) EXCEL的显示方式为最大化:
xlApp.Application.WindowState =xlMaximized
27) 工作薄显示方式为最大化:
xlApp.ActiveWindow.WindowState =xlMaximized
28) 设置打开默认工作薄数量:
xlApp.SheetsInNewWorkbook = 3
29) 关闭时是否提示保存(true 保存;false 不保存):
xlApp.DisplayAlerts = False
30) 设置拆分窗口,及固定行位置:
xlApp.ActiveWindow.SplitRow = 1
xlApp.ActiveWindow.FreezePanes = True
31) 设置打印时固定打印内容:
xlApp.ActiveSheet.PageSetup.PrintTitleRows= "$1:$1"
32) 设置打印标题:
xlApp.ActiveSheet.PageSetup.PrintTitleColumns= ""
33) 设置显示方式(分页方式显示):
xlApp.ActiveWindow.View =xlPageBreakPreview
34) 设置显示比例:
xlApp.ActiveWindow.Zoom = 100
35) 让Excel 响应 DDE 请求:
Ex.Application.IgnoreRemoteRequests = False
四、用VB操作EXCEL
Private Sub Command1_Click()
On Error GoTo err1
Dim i As Long
Dim j As Long
Dim xlApp As Excel.Application '声明对象变量
Me.MousePointer = 11 '改变鼠标样式
Set xlApp = New Excel.Application '初始化对象变量
xlApp.SheetsInNewWorkbook = 1 '将新建的工作薄数量设为1
xlApp.Workbooks.Add '增加一个工作薄
xlApp.Sheets(1).Name = "book2" '修改工作薄名称
xlApp.Sheets("book2").Select '选中工作薄<book2>
For i = 1 To 50 '循环写入数据
For j = 1 To 5
If i = 1 Then
xlApp.Selection.NumberFormatLocal = "@" '设置格式为文本
xlApp.Cells(i, j) = " E" & i & j
Else
xlApp.Cells(i, j) = i & j
End If
Next j
Next i
xlApp.Rows("1:1").Select '选中第一行
xlApp.Selection.Font.Bold = True '设为粗体
xlApp.Selection.Font.Size = 24 '设置字体大小
xlApp.Cells.EntireColumn.AutoFit '自动调整列宽
xlApp.ActiveWindow.SplitRow = 1 '拆分第一行
xlApp.ActiveWindow.SplitColumn = 7 '拆分前七列
xlApp.ActiveWindow.FreezePanes = True '固定拆分
xlApp.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1" '设置打印固定行
xlApp.ActiveSheet.PageSetup.PrintTitleColumns = "" '打印标题
xlApp.ActiveSheet.PageSetup.RightFooter = "打印时间: " & _
Format(Now, "yyyy年mm月dd日 hh:MM:ss")
xlApp.ActiveWindow.View = xlPageBreakPreview '设置显示方式
xlApp.ActiveWindow.Zoom = 100 '设置显示大小
xlApp.ActiveSheet.Protect "123", DrawingObjects:=True, _
Contents:=True,Scenarios:=True
xlApp.Application.IgnoreRemoteRequests = False
xlApp.Visible = True '使EXCEL可见
xlApp.Application.WindowState = xlMaximized 'EXCEL的显示方式为最大化
xlApp.ActiveWindow.WindowState = xlMaximized '工作薄显示方式为最大化
xlApp.SheetsInNewWorkbook = 3 '将默认新工作薄数量改回3个
Set objExl = Nothing '清除对象
Me.MousePointer= 0 '修改鼠标
Exit Sub
err1:
xlApp.SheetsInNewWorkbook = 3
xlApp.DisplayAlerts = False '关闭时不提示保存
xlApp.Quit '关闭EXCEL
xlApp.DisplayAlerts = True '关闭时提示保存
Set xlApp= Nothing
Me.MousePointer = 0
EndSub