VB操作Excel的类模块DIYExcel类

上传人:飞*** 文档编号:43796315 上传时间:2018-06-07 格式:DOC 页数:4 大小:42.50KB
返回 下载 相关 举报
VB操作Excel的类模块DIYExcel类_第1页
第1页 / 共4页
VB操作Excel的类模块DIYExcel类_第2页
第2页 / 共4页
VB操作Excel的类模块DIYExcel类_第3页
第3页 / 共4页
VB操作Excel的类模块DIYExcel类_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《VB操作Excel的类模块DIYExcel类》由会员分享,可在线阅读,更多相关《VB操作Excel的类模块DIYExcel类(4页珍藏版)》请在金锄头文库上搜索。

1、VB 操作操作 Excel 的类模块的类模块 DIYExcel 类类前言: VB 自带的 Excel 操作功能十分强大,但一般使用起来既要引用又要声明的,还是不太 方便的,由于我们只是要使用它的一小部分功能,所以我把这部分常用的功能封装起来, 制作了一个类模块,叫做 DIYExcel 类,使用起来十分方便。一、 DIYExcel 类的主要属性、方法及使用示例1、属性Visible 布尔值,工作簿是否可见(须在工作簿打开后才能设置此属性)CellsForeColor 颜色值,当前单元格的前景色CellsBackColor 颜色值,当前单元格的背景色CellsValue 变体型,当前单元格的内容R

2、owsNum 长整型,只读属性,当前工作表的有效行数ColsNum 长整型,只读属性,当前工作表的有效列数 2、方法BookOpen(sPath As String) 打开工作簿 (如果文件不存在就创建之并打开)BookClose() 关闭工作簿CreateBook(sPath As String) 创建 Excel 文件SheetsGoto(sSheet As String) 跳转到工作表CellsGoto(sRow As Long, sCol As Long) 跳转到单元格3、使用示例(九九乘法表)Dim Myxls As New DiyExcel定义一个新的 DIYExcel 类的实例

3、Private Sub Command1_Click()Dim sPath As StringsPath = “d:abc.xls“Excel 文件路径Myxls.BookOpen sPath打开 Excel 文件,如果文件不存在会自动创建之Myxls.Visible = True使打开的 Excel 可见Myxls.SheetsGoto “sheet1“跳转到工作表“sheet1”Dim i, j As Integer下面使用循环来打印九九乘法表For i = 1 To 9For j = 1 To iMyxls.CellsGoto i, j跳转到单元格(i,j)即第 i 行 j 列的单元格,

4、 如 B6 就是(6,2)第 6 行第 2 列Myxls.CellsValue = i & “*“ & j & “=“ & i * jNextNext End Sub Private Sub Command2_Click()Myxls.BookClose关闭 Excel End Sub二、 DIYExcel 类完整代码提示:可以在 vb 里添加一个类模块并修改 Name 属性为 DIYExcel,然后把下 面的代码粘贴进去(部分注释在 word 里被分为两行,第二行前面没有单引号, 粘贴到 vb 里可能会报错,请自行修改为一行)Option Explicit DIYExcel 类Dim xls

5、App As Object EXcel 对象 Dim xlsBooK As Object Excel 工作簿 Dim xlsSheet As Object Excel 工作表 Dim xlsRng As Object 用来获得工作表的有效行列数Dim CurrentRow As Long 当前单元格的行 Dim CurrentCol As Long 当前单元格的列跳转到工作表 Public Sub SheetsGoto(sSheet As String)Set xlsSheet = xlsBooK.Sheets(sSheet) End Sub跳转到单元格 Public Sub CellsGot

6、o(sRow, sCol)CurrentRow = sRowCurrentCol = sCol End Sub有效行列数 Public Property Get RowsNum() As LongSet xlsRng = xlsSheet.UsedRangeRowsNum = xlsRng.Rows.Count End Property Public Property Get ColsNum() As LongSet xlsRng = xlsSheet.UsedRangeColsNum = xlsRng.Columns.Count End Property单元格内容 Public Proper

7、ty Let CellsValue(sStr)xlsSheet.Cells(CurrentRow, CurrentCol).Value = sStr End Property Public Property Get CellsValue()CellsValue = xlsSheet.Cells(CurrentRow, CurrentCol).Value End Property单元格前景色 Public Property Get CellsForeColor() As OLE_COLORCellsForeColor = xlsSheet.Cells(CurrentRow, CurrentCol

8、).Font.Color End Property Public Property Let CellForeColor(sColor As OLE_COLOR)xlsSheet.Cells(CurrentRow, CurrentCol).Font.Color = sColor End Property单元格背景色 Public Property Get CellsBackColor() As OLE_COLORCellsBackColor = xlsSheet.Cells(CurrentRow, CurrentCol).Interior.Color End Property Public Pr

9、operty Let CellsBackColor(sColor As OLE_COLOR)xlsSheet.Cells(CurrentRow, CurrentCol).Interior.Color = sColor End Property可见性 Public Property Get Visible() As BooleanVisible = xlsApp.Visible End Property Public Property Let Visible(sV As Boolean)xlsApp.Visible = sV End Property打开工作簿 Public Sub BookOp

10、en(sPath As String)If sPath = “ ThenMsgBox “错误 Excel 文件路径为空“ & vbCrLf & vbCrLf & “必须指定 Excel 文件路 径才能打开 Excel 文件 “, vbExclamation + vbSystemModalExit SubEnd IfIf Dir(sPath) = “ Then 如果指定的 xls 文件不存在,就创建之CreateBook sPathEnd IfSet xlsApp = CreateObject(“Excel.Application“)Set xlsBooK = xlsApp.Workbooks.

11、Open(sPath) End Sub关闭工作簿 Public Sub BookClose()xlsBooK.Saved = TruexlsBooK.ClosexlsApp.QuitSet xlsApp = Nothing End Sub创建 Excel 文件 Public Sub CreateBook(sPath As String)On Error GoTo ErrTo:Dim Cxls As ObjectDim Cbook As ObjectDim M As Integer如果要创建的文件已经存在If Dir(sPath) “ ThenBeepM = MsgBox(“文件 “ & sPa

12、th & “” 已经存在 “ & vbCrLf & vbCrLf & “ 是否进行覆盖?“, vbQuestion + vbYesNo + vbSystemModal)If M = vbYes ThenKill sPath 如果删不掉会出现错误 70 号ElseExit SubEnd IfEnd IfSet Cxls = CreateObject(“Excel.Application“)Set Cbook = Cxls.Workbooks.Add 创建工作簿Cbook.SaveAs sPath 保存工作簿Cbook.Saved = True 设定工作簿的保存状态 为已保存(实际上不一定保存了)Cbook.Close 关闭工作簿Cxls.Quit 退出 ExcelSet Cxls = Nothing 释放对象Exit Sub 没有错误就不执行下 面的错误处理代码ErrTo: 错误处理If Err.Number = 70 ThenMsgBox “运行时错误 文件覆盖失败 “ & vbCrLf & vbCrLf & “可能是由于该文件 处于打开状态或其他进程正在占用该文件, “ & vbCrLf & vbCrLf & “请确认文 件处于非占用状态再进行覆盖操作“, vbCriticalErr.ClearEnd If End Sub

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号