VB中后台打开Excel文件

某些时候需要打开Excel文件来获取或者写入数据,但又不希望跳出打开的Excel文件窗口,可以用下面的代码:

    Dim eb As New excel.Application, wb as excel.Workbook
    Set wb = eb.Application.Workbooks.Open(FileName:=nameOfFile, ReadOnly:=False) ' open

    ' do your work

    wb.Close True ' save and close

原理:New Excel.Application新建了一个Excel实例,这个实例默认不可见。具体而言,获取Excel.Application实例有两种方式:

    Dim eb As Excel.Application
    Set eb = CreateObject(, "Excel.Application")
        ' 新建Excel实例,同dim eb as new Excel.Application
    Set eb = GetObject(, "Excel.Application")
        ' 从Windows环境获取Excel实例,如果当前没有打开的Excel窗口,将出现错误

如果对是否后台打开没有要求的话,最好结合上面两种方式获取Excel实例:

' 获取Excel实例,如果当前已经有excel窗口,则直接获取当前实例,否则新建实例
Function GetExcelApp() As Excel.Application
    On Error Resume Next
    Set GetExcelApp = GetObject(, "Excel.Application")
    If Err.Number > 0 Then Err.Clear: Set GetExcelApp = New Excel.Application
End Function

写于2009年十一月 24日

关于, »
5条留言 -> 跳到留言表格
  • At 2009.11.27 08:53, rander said:

    请问博主用的是哪儿空间?或推荐一个稳定、快速、实惠的个人用的空间?

    • At 2011.06.14 14:08, est said:

      传说金融业用excel用的多,真的么?

      • At 2011.06.14 17:27, zhiqiang said:

        我见过的,是这样的。金融这边算东西做模板,vba比c/matlab还要多些

      • At 2012.01.02 14:11, bzsy911 said:

        hello,博主好~
        第二次偶然路过啦,请问SAS和SPSS用的会比VBA多么?
        btw,期待新作

        • At 2012.01.02 15:45, zhiqiang said:

          我工作中没用过SAS和SPSS。大部分工作是VBA,也用一些matlab和C/C++。

        (Required)
        (Required, not published)

          B | I | U | D | 添加链接 | 插入引用 | 插入代码 | 插入表情 | | + | ?

        guest | 注册 | 管理

        阅微堂

        理工科背景的证券从业人员
        Loading...
        Loading...
        Loading...