通过VBA操纵Excel的通用类库

原创 2006年06月15日 12:30:00

下面的这个类ExcelLibrary是一个非常通用的通过VBA操纵Excel的类, 是我在工作中总结,整理,借鉴(借鉴了一些微软的例子)并多次改进和使用的,现在在这里共享给大家.
起初程序没有注释,为了便于理解,我刚刚补上了一些注释.

'操纵Excel的通用类库VB.Net

Imports Excel

Public Class ExcelLibrary
  'Excel application代表Excel本身
    Private mExcelApp As Excel.Application
    'Workbook就是Excel中的工作簿
    Private mWorkBook As Excel.Workbook
    'Worksheet就是我们在Excel文件中看到的Sheet1,Sheet2...
    Private mWorkSheet As Excel.Worksheet

    Public Sub New()
      '启动一个Excel应用程序
        mExcelApp = New Excel.Application
    End Sub

    Public Sub Open()
      '新建一个工作簿
        mWorkBook = mExcelApp.Workbooks.Add()
    End Sub

    Public Sub Open(ByVal Template As String)
      '通过模板新建一个工作簿
        mWorkBook = mExcelApp.Workbooks.Add(Template)
    End Sub

    Public Sub SetActiveSheet(ByVal SheetName As String)
      '设置当前活动的Sheet
        mWorkSheet = mWorkBook.Worksheets(SheetName)
    End Sub

    Public Sub AddNewSheet(ByVal SheetName As String)
      '添加一个新Sheet
        mWorkSheet = mWorkBook.Worksheets.Add()
        mWorkSheet.Name = SheetName
    End Sub

    Public Sub HideSheet(ByVal SheetName As String)
      '隐藏某个Sheet(有时这个功能也是需要的)
        mWorkBook.Worksheets(SheetName).Visible = False
    End Sub

    Public Sub CopyRange(ByVal SheetName As String, ByVal Cell1 As String, ByVal Cell2 As String)
      '在Excel中区域性Copy
        SetActiveSheet(SheetName)
        mWorkSheet.Range(Cell1, Cell2).Copy()
    End Sub

    Public Sub PasteRange(Optional ByVal SheetName As String = "")
      '在Excel中区域性Paste
        If SheetName <> "" Then
            SetActiveSheet(SheetName)
        End If
        mWorkSheet.Paste()
    End Sub

    Public Sub ChangeSheetName(ByVal SheetOldName As String, ByVal SheetNewName As String)
      '更改Sheet名字
        mWorkBook.Worksheets(SheetOldName).Name = SheetNewName
    End Sub

    Public Sub SetValue(ByVal CellPosition As String, ByVal Value As String)
      '设置某个单元格的值
        mWorkSheet.Range(CellPosition).FormulaR1C1 = Value
    End Sub

    Public Sub SetValue(ByVal RangeX As String, ByVal RangeY As String, ByVal Value As String(,))
      '设置某一区域的值,这个功能非常有用
        Dim rg As Range
        rg = mWorkSheet.Range(RangeX, RangeY)
        rg.Value = Value
    End Sub

    Public Sub SaveAs(ByVal FileName As String)
      '保存
        mWorkBook.SaveAs(FileName)
    End Sub

    Public Sub Close()
      '关闭
        mWorkSheet = Nothing
        mWorkBook = Nothing
        mExcelApp.Quit()
        mExcelApp = Nothing
        GC.Collect()
    End Sub
End Class

【VBA研究】利用ADO让普通人用excel读取oracle数据库表的通用办法

作者:iamlaosong Excel通过ADO方式连接到Oracle并操作Oracle给那些编程能力不强的人带来很大的福音,结合着Excel的数据处理与图表制作,就能很轻松地处理一些常规工作。 日常...
  • iamlaosong
  • iamlaosong
  • 2013年01月04日 17:34
  • 10744

【VBA研究】用VBA实现excel与Oracle数据库交互

作者:iamlaosong     网络应用程序一般有两种结构形式,就是所谓的C/S结构和B/S结构,通过Excel和数据库的配合,可以实现简单C/S结构的应用程序,客户端只要安装数据库客户端和Exc...
  • iamlaosong
  • iamlaosong
  • 2013年10月11日 16:43
  • 12916

把Excel当成数据库操作

近日老弟有个需求,要从excel中筛选数据出来。他只需要把筛选出来的数据放到另外一个Sheet里就行了。我的想法是用VBA 或者 c++。 c++是个人喜好,VBA是Office默认支持的,之间没有用...
  • ppdouble
  • ppdouble
  • 2016年08月09日 20:20
  • 1636

使用VBA开发EXCEL通用功能 --办公大师系列经典丛书(试读章节)

一般来说,一个通用功能是用于EXCEL的加强,添加实用功能或使现有功能更加容易使用。EXCEL通用功能不是类似季度报表的成品,更确切地说,它是一个帮你制做成品的工具。一个EXCEL通用功能(几乎总)是...
  • lihui_830501
  • lihui_830501
  • 2013年12月07日 14:53
  • 1504

EXCEL+VBA编写通用银行承兑汇票打印程序的设想

由于需要经常、大量、开具银行承兑汇票,故产生使用人人都会使用的EXCEL编写一个简单的打印程序,实现自动连续打印目的 创建工作表清单: 1,待打印清单---所有需要打印的银行承兑汇票清单录入在此工...
  • aiyunfeng118
  • aiyunfeng118
  • 2011年09月01日 01:10
  • 932

Excel+vba通用SQL查询输出器源码

  • 2016年05月01日 02:25
  • 85KB
  • 下载

一套基于ASP.NET+XML+JS实现的通用查询类库源码

  • 2017年01月05日 11:47
  • 49KB
  • 下载

.net类库(通用版)包含MSsql数据处理方法

  • 2012年03月05日 12:10
  • 37KB
  • 下载

一个通用类库程序(PFC简化版)

  • 2008年05月20日 00:24
  • 431KB
  • 下载

C#通用类库大全(非常有用)

  • 2014年05月16日 23:01
  • 2.37MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:通过VBA操纵Excel的通用类库
举报原因:
原因补充:

(最多只允许输入30个字)