VB 操作Excel

来源:互联网 发布:淘粉吧与淘宝什么关系 编辑:程序博客网 时间:2024/04/28 02:57

'首先要将“工程-引用”中的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


0 0
原创粉丝点击