您的位置:首页 > 编程语言 > VB

VB 操作Excel

2014-03-13 14:52 225 查看
'首先要将“工程-引用”中的Mic… Excel…选中

'Set xlBook = xlApp.Workbooks.Open("文件名") '打开已经存在的EXCEL工件簿文件

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

'Set xlSheet = xlBook.Worksheets("表名") '设置活动工作表

'Range("K12").Select 设置活动单元格

'xlSheet.Cells(Row, col) = 值 '给单元格(row,col)赋值

'xlSheet.PrintOut '打印工作表

'xlBook.Close (True) '关闭工作簿

'xlApp.Quit '结束EXCEL对象

'Set xlApp = Nothing '释放xlApp对象.

'xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏

'xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏

'xlBook.Worksheets.Count '工作簿标签总数

Private Sub Command1_Click()

Dim xlApp As Excel.Application

Set xlApp = New Excel.Application

Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象

On Error Resume Next

Workbooks.Add '新建工作簿

MkDir "C:\123"

ChDir "C:\123" '在桌面上建“123”文件夹

'以下是将文件保存到“C:\\模板.xls”

ActiveWorkbook.SaveAs FileName:= _

"C:\123\模板.xls", FileFormat:=xlNormal, _

Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _

CreateBackup:=False

'Windows("模板.xls").Activate

xlApp.Visible = True

'Sheets("Sheet1").Select

Sheets.Add '新建工作表

Sheets("Sheet2").Name = "新建工作表"

'Sheets("Sheet3").Name = "Sheet"

ActiveWorkbook.Sheets("新建工作表").Tab.ColorIndex = 7 '给工作表标签指定颜色

xlApp.Worksheets("新建工作表").Range("A1").Cells(3, 2) = "添加数据"

'xlApp.Worksheets(Sheets(i).Name).Range("A1").Cells(j, 2) = "@"

'ActiveWorkbook.Sheets("考评").Tab.ColorIndex = 7

'ActiveWorkbook.Sheets("教师任课").Tab.ColorIndex = 7

'ActiveWorkbook.Sheets("班级设置").Tab.ColorIndex = 7

'ActiveWorkbook.Sheets("Zxmd").Tab.ColorIndex = 32

xlBook.Save

xlApp.Save

ActiveWorkbook.Close

xlBook.Close (True) '关闭工作簿

xlApp.Quit '结束EXCEL对象.

Set xlApp = Nothing '释放xlApp对象

End Sub

利用通用对话框:

'首先要将“工程-引用”中的Mic… Excel…选中

'将“工程-部件”中的MIcrosoft Comman Dialog Control6.0 (SP3)选中

Private Sub Cdjssj_Click()

On Error Resume Next

CommonDialog1.CancelError = True

CommonDialog1.DialogTitle = "指定要打开的Excel文件"

CommonDialog1.Filter = "文本文件(*.xls)|*.xls|所有文件(*.*)|*.*"

CommonDialog1.InitDir = App.Path

CommonDialog1.ShowOpen

Dim xlApp As Excel.Application

Set xlApp = New Excel.Application

Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象

If Err Then

MsgBox "你选择了“取消”按钮。"

Exit Sub

Else

xlApp.Visible = True

Set xlBook = xlApp.Workbooks.Open(CommonDialog1.FileName)

MsgBox "文件已经打开"

End If

MsgBox "下面将保存并关闭文件"

xlBook.Save

ActiveWorkbook.Close

xlBook.Close (True) '关闭工作簿

xlApp.Quit '结束EXCEL对象.

Set xlApp = Nothing '释放xlApp对象

Shell "cmd.exe /c taskkill /f /im excel.exe"

End Sub

Private Sub Command1_Click()

Cdjssj_Click

End Sub

以下转自:http://hi.baidu.com/ljl88900/blog/item/b1b1281071209a0f203f2e25.html

Excel基本操作

一、基本操作

Private Sub Command1_Click()

Dim S() As String, i As Integer, j As Integer

Dim xlApp

Dim xlBook

Dim xlSheet

Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象(注:WPS的对象是Set ET = CreateObject("et.application"),其他用法同EXCEL)

xlApp.DisplayAlerts = False '不显示对话框

Set xlBook = xlApp.Workbooks.Open("c:\1.xls") '打开已经存在的EXCEL工件簿文件

'Set xlBook = xlApp.Workbooks.open("c:\1.xls", password:="123") '打开已经存在的含有密码的EXCEL工件簿文件

'Set xlBook = xlApp.Workbooks.Add '新建工件簿

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

Set xlSheet = xlBook.Worksheets("Sheet1") '设置活动工作表

xlSheet.Cells(1, 1) = 1 '给单元格(row,col)赋值

'变量 = xlSheet.Cells(1, 1) '将单元格(row,col)中的值读取到一个变量

'xlSheet.Range("A1:B2").CopyPicture 1, 2 '将单元格A1至B2的内容复制到剪切板

'xlSheet.PrintOut '打印工作表

xlBook.SaveAs FileName:="c:\1.xls" '保存工作表,结束时一定别忘了保存

xlBook.Close (True) '关闭工作簿 这里的True表示退出时保存修改

xlApp.quit '结束EXCEL对象

Set xlApp = Nothing '释放xlApp对象

End Sub

二、对于已经打开过的office文档,可通过下面方法进行操作

1、Set applicationName = GetObject(, "Excel.Application") '取得当前运行的Excel对象

Set doc = applicationName.ActiveWorkBook

'当前Excel打开的工作簿文件

2、 Set applicationName = GetObject(, "Word.Application") '取得当前运行的Word对象

Set doc = applicationName.ActiveDocument

3、当前Word的applicationName打开的文件

Set applicationName = GetObject(, "AutoCAD.Application") '取得当前运行的AutoCAD对象

Set doc = applicationName.ActiveDocument

4、当前AutoCAD打开的图挡文件

Set applicationName = GetObject(, "Powerpoint.Application") '取得当前运行的ppt对象

Set doc = applicationName.ActiveDocument

5、用法举例:

'功能:Excel与Word文件自动保存

Private Sub AutoSave()Dim xlApp

Dim xlBook

Dim i As Integer

On Error Resume Next

Err.Clear

Set xlApp = GetObject(, "Excel.Application") '

If Err.Number = 0 Then

For i = 1 To xlApp.workbooks.Count

Set xlBook = xlApp.workbooks(i) '装入已经存在的EXCEL文件

'Set xlBook = GetObject(FileName) '装入已经存在的指定文件名EXCEL文件

If Not xlBook.saved Then xlBook.saved = True '自动保存

DoEvents

Next

End If

Err.Clear

Set xlApp = GetObject(, "Word.Application")

If Err.Number = 0 Then

For i = 1 To xlApp.documents.Count

Set xlBook = xlApp.documents(i) '装入已经存在的Word文件

'Set xlBook = GetObject(FileName) '装入已经存在的指定文件名Word文件

If Not xlBook.saved Then xlBook.saved = True '自动保存

DoEvents

Next

End If

Set xlBook = Nothing '释放对象

Set xlApp = Nothing '释放对象

End Sub

三、 全面控制 Excel

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

var ExcelID: Variant

ExcelID:= CreateOleObject( 'Excel.Application')

1) 显示当前窗口:

ExcelID.Visible:= True

2) 更改 Excel 标题栏:

ExcelID.Caption:= '应用程序调用 Microsoft Excel'

3) 添加新工作簿:

ExcelID.WorkBooks.Add

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

ExcelID.WorkBooks.Open( 'C:\Excel\Demo.xls')

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

ExcelID.WorkSheets[2].Activate

或 ExcelID.WorkSheets[ 'Sheet2' ].Activate

6) 给单元格赋值:

ExcelID.Cells[1,4].Value:= '第一行第四列'

7) 设置指定列的宽度(单位:字符个数),以第一列为例:

ExcelID.ActiveSheet.Columns[1].ColumnsWidth:= 5

8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:

ExcelID.ActiveSheet.Rows[2].RowHeight:= 1/0.035 // 1厘米

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

ExcelID.WorkSheets[1].Rows[8].PageBreak:= 1

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

ExcelID.ActiveSheet.Columns[4].PageBreak:= 0

11) 指定边框线宽度:

ExcelID.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight:= 3

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

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

ExcelID.ActiveSheet.Cells[1,4].ClearContents

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

ExcelID.ActiveSheet.Rows[1].Font.Name:= '隶书'

ExcelID.ActiveSheet.Rows[1].Font.Color := clBlue

ExcelID.ActiveSheet.Rows[1].Font.Bold := True

ExcelID.ActiveSheet.Rows[1].Font.UnderLine:= True

14) 枚举工作簿:

Private Sub Command2_Click()Dim objExl, i

Set objExl = CreateObject("Excel.Application")

objExl.Workbooks.Open ("c:\1.xls")

For i = 1 To objExl.Sheets.Count

MsgBox objExl.Sheets(i).Name

'Set xlSheet = xlBook.Worksheets(ID) '打开工作表

Next

objExl.Workbooks.Close

objExl.quit

Set objExl = Nothing

End Sub

15) 进行页面设置:

a.页眉:

ExcelID.ActiveSheet.PageSetup.CenterHeader:= '报表演示'

b.页脚:

ExcelID.ActiveSheet.PageSetup.CenterFooter:= '第&P页'

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

ExcelID.ActiveSheet.PageSetup.HeaderMargin:= 2/0.035

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

ExcelID.ActiveSheet.PageSetup.HeaderMargin:= 3/0.035

e.顶边距2cm:

ExcelID.ActiveSheet.PageSetup.TopMargin:= 2/0.035

f.底边距2cm:

ExcelID.ActiveSheet.PageSetup.BottomMargin:= 2/0.035

g.左边距2cm:

ExcelID.ActiveSheet.PageSetup.LeftMargin:= 2/0.035

h.右边距2cm:

ExcelID.ActiveSheet.PageSetup.RightMargin:= 2/0.035

i.页面水平居中:

ExcelID.ActiveSheet.PageSetup.CenterHorizontally:= 2/0.035

j.页面垂直居中:

ExcelID.ActiveSheet.PageSetup.CenterVertically:= 2/0.035

k.打印单元格网线:

ExcelID.ActiveSheet.PageSetup.PrintGridLines:= True

15) 拷贝操作:

a.拷贝整个工作表:

ExcelID.ActiveSheet.Used.Range.Copy

b.拷贝指定区域:

ExcelID.ActiveSheet.Range[ 'A1:E2' ].Copy

c.从A1位置开始粘贴:

ExcelID.ActiveSheet.Range.[ 'A1' ].PasteSpecial

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

ExcelID.ActiveSheet.Range.PasteSpecial

16) 插入一行或一列:

a. ExcelID.ActiveSheet.Rows[2].Insert

b. ExcelID.ActiveSheet.Columns[1].Insert

17) 删除一行或一列:

a. ExcelID.ActiveSheet.Rows[2].Delete

b. ExcelID.ActiveSheet.Columns[1].Delete

18) 打印预览工作表:

ExcelID.ActiveSheet.PrintPreview

19) 打印输出工作表:

ExcelID.ActiveSheet.PrintOut

20) objexcel.Application.Dialogs(8).Show '调出excel打印设置窗口

21) xlBook.saved = True '不提示是否保存,直接保存文件

22) 工作表保存:

if not ExcelID.ActiveWorkBook.Saved then

ExcelID.ActiveSheet.PrintPreview

23) 工作表另存为:

ExcelID.SaveAs( 'C:\Excel\Demo1.xls')

24) 放弃存盘:

ExcelID.ActiveWorkBook.Saved:= True

25) 关闭工作簿:

ExcelID.WorkBooks.Close

26) 退出 Excel:

ExcelID.Quit
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: