分享
 
 
 

一组有用的操作Excel的函数

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

在用VB做程序的时候,它本身的报表并不太好使用,因此应用Excel输出数据,是一个好方法,以下是一组操纵Excel的函数据,希望能帮助大家.

'Excel VBA控制函数

'Write By WeiHua 2000.10.12

'检测文件

Function CheckFile(ByVal strFile As String) As Boolean

Dim FileXls As Object

Set FileXls = CreateObject("Scripting.FileSystemObject")

If IsNull(strFile) Or strFile = "" Then

CheckFile = False

Exit Function

End If

If FileXls.FileExists(strFile) = False Then

CheckFile = False

Set FileXls = Nothing

Exit Function

Else

CheckFile = True

Set FileXls = Nothing

End If

End Function

'检测工作表

Function CheckSheet(ByVal strSheet As String, ByVal strWorkBook As String, xlCheckApp As Excel.Application) As Boolean

Dim L As Integer

Dim CheckWorkBook As Excel.Workbook

If CheckFile(strWorkBook) And strSheet <> "" And Not IsNull(strSheet) Then

For L = 1 To xlCheckApp.Workbooks.Count

If GetPath(xlCheckApp.Workbooks(L).Path) & xlCheckApp.Workbooks(L).Name = strWorkBook Then

Set CheckWorkBook = xlCheckApp.Workbooks(L)

Exit For

End If

Next L

Set CheckWorkBook = xlCheckApp.Workbooks.Open(strWorkBook)

For L = 1 To CheckWorkBook.Worksheets.Count

If CheckWorkBook.Worksheets(L).Name = Trim(strSheet) Then

CheckSheet = True

Exit For

End If

Next L

Else

MsgBox "工作表不存在,可能是由文件名或工作表名引起的!"

CheckSheet = False

End If

End Function

'建立工作表

'CreateMethod:1追加

'CreateMethod:2覆盖

Function CreateSheet(ByVal strSheetName As String, ByVal strWorkBook As String, ByVal CreateMethod As Integer, xlCreateApp As Excel.Application) As Boolean

Dim xlCreateSheet As Excel.Worksheet

If CheckFile(strWorkBook) Then

xlCreateApp.Workbooks.Open (strWorkBook)

If CreateMethod = 1 Then

If CheckSheet(strSheetName, strWorkBook, xlCreateApp) = False Then

Set xlCreateSheet = xlCreateApp.Worksheets.Add

xlCreateSheet.Name = strSheetName

xlCreateApp.ActiveWorkbook.Save

CreateSheet = True

Set xlCreateSheet = Nothing

Else

'MsgBox strSheetName & "工作表已存在!"

CreateSheet = False

Set xlCreateSheet = Nothing

End If

ElseIf CreateMethod = 2 Then

If CheckSheet(strSheetName, strWorkBook, xlCreateApp) = True Then

Set xlCreateSheet = xlCreateApp.Worksheets(strSheetName)

xlCreateSheet.Cells.Select

xlCreateSheet.Cells.Delete

xlCreateApp.ActiveWorkbook.Save

CreateSheet = True

Set xlCreateSheet = Nothing

Else

'MsgBox strSheetName & "工作表不存在!"

CreateSheet = False

Set xlCreateSheet = Nothing

End If

End If

End If

End Function

'删除工作表

Function DeleteSheet(ByVal strSheetName As String, ByVal strWorkBook As String, xlDeleteApp As Excel.Application) As Boolean

Dim i As Integer

Dim xlDeleteSheet As Excel.Worksheet

If CheckFile(strWorkBook) Then

If CheckSheet(strSheetName, strWorkBook, xlDeleteApp) = True Then

xlDeleteApp.Workbooks.Open (strWorkBook)

If xlDeleteApp.Worksheets.Count = 1 Then

MsgBox "工作薄不能全部删除," & strSheetName & "是最后一个工作表!"

DeleteSheet = False

Exit Function

End If

xlDeleteApp.Worksheets(strSheetName).Delete

xlDeleteApp.ActiveWorkbook.Save

DeleteSheet = True

Else

DeleteSheet = False

End If

End If

End Function

'复制工作表

Function CopySheet(ByVal strSrcSheetName As String, ByVal strSrcWorkBook As String, ByVal strTagSheetName As String, ByVal strTagWorkbook As String, xlCopyApp As Excel.Application) As Boolean

Dim xlSrcBook As Excel.Workbook

Dim xlTagBook As Excel.Workbook

Dim ExcelSource As Excel.Worksheet

Dim ExcelTarget As Excel.Worksheet

Dim Result As Boolean

If CheckFile(strSrcWorkBook) = False Or CheckFile(strTagWorkbook) = False Then

Set ExcelSource = Nothing

Set ExcelTarget = Nothing

Set xlSrcBook = Nothing

Set xlTagBook = Nothing

CopySheet = False

Exit Function

Else

Set xlSrcBook = xlCopyApp.Workbooks.Open(strSrcWorkBook)

If strSrcWorkBook = strTagWorkbook Then

If strSrcSheetName = strTagSheetName Then

Set ExcelSource = Nothing

Set ExcelTarget = Nothing

Set xlSrcBook = Nothing

Set xlTagBook = Nothing

CopySheet = False

Exit Function

End If

Set xlTagBook = xlSrcBook

Else

Set xlTagBook = xlCopyApp.Workbooks.Open(strTagWorkbook)

End If

Set ExcelSource = xlSrcBook.Worksheets(strSrcSheetName)

Set ExcelTarget = xlTagBook.Worksheets(strTagSheetName)

ExcelSource.Select

ExcelSource.Cells.Copy

ExcelTarget.Select

ExcelTarget.Paste

xlCopyApp.Application.CutCopyMode = xlCopy

If strSrcWorkBook = strTagWorkbook Then

xlTagBook.Save

xlSrcBook.Save

Else

xlTagBook.Save

End If

Set ExcelSource = Nothing

Set ExcelTarget = Nothing

Set xlSrcBook = Nothing

Set xlTagBook = Nothing

CopySheet = True

End If

End Function

'复制工作表

Function ExcelCopySheet(ByVal strSrcSheetName As String, ByVal strSrcWorkBook As String, ByVal strTagSheetName As String, ByVal strTagWorkbook As String, xlCopyApp As Excel.Application) As Boolean

Dim xlSrcBook As Excel.Workbook

Dim xlTagBook As Excel.Workbook

Dim ExcelSource As Excel.Worksheet

Dim ExcelTarget As Excel.Worksheet

Dim Result As Boolean

If CheckFile(strSrcWorkBook) = False Or CheckFile(strTagWorkbook) = False Then

Set ExcelSource = Nothing

Set ExcelTarget = Nothing

Set xlSrcBook = Nothing

Set xlTagBook = Nothing

CopySheet = False

Exit Function

Else

Set xlSrcBook = xlCopyApp.Workbooks.Open(strSrcWorkBook)

If strSrcWorkBook = strTagWorkbook Then

If strSrcSheetName = strTagSheetName Then

Set ExcelSource = Nothing

Set ExcelTarget = Nothing

Set xlSrcBook = Nothing

Set xlTagBook = Nothing

CopySheet = False

Exit Function

End If

Set xlTagBook = xlSrcBook

Else

Set xlTagBook = xlCopyApp.Workbooks.Open(strTagWorkbook)

End If

Set ExcelSource = xlSrcBook.Worksheets(strSrcSheetName)

Set ExcelTarget = xlTagBook.Worksheets(strTagSheetName)

ExcelSource.Select

ExcelSource.Copy before

ExcelTarget.Select

ExcelTarget.Paste

xlCopyApp.Application.CutCopyMode = xlCopy

If strSrcWorkBook = strTagWorkbook Then

xlTagBook.Save

xlSrcBook.Save

Else

xlTagBook.Save

End If

Set ExcelSource = Nothing

Set ExcelTarget = Nothing

Set xlSrcBook = Nothing

Set xlTagBook = Nothing

CopySheet = True

End If

End Function

'关闭Excel应用

Function CloseExcelApp(xlApp As Object)

On Error Resume Next

xlApp.Quit

Set xlApp = Nothing

End Function

'建立Excel应用

Function CreateExcelApp(QuitApp As Boolean) As Object

On Error Resume Next

Dim xlObject As Object

If CheckExcel Then

Set xlObject = GetObject(, "Excel.Application")

If err.Number <> 0 Then

Set xlObject = Nothing

Set xlObject = CreateObject("Excel.Application")

CreateExcelApp = xlObject

Else

If QuitApp Then

xlObject.Quit

Set xlObject = Nothing

Set xlObject = CreateObject("Excel.Application")

End If

CreateExcelApp = xlObject

End If

End If

End Function

'检测EXCEL环境

Function CheckExcel() As Boolean

Dim xlCheckApp As Object

Set xlCheckApp = CreateObject("Excel.Application")

If xlCheckApp Is Nothing Then

MsgBox "对不起,系统未检测到EXCEL安装,请重新检查EXCEL是否被正确安装!"

CheckExcel = False

xlCheckApp.Quit

Set xlCheckApp = Nothing

Exit Function

Else

xlCheckApp.Quit

CheckExcel = True

Set xlCheckApp = Nothing

End If

End Function

Function CreateWorkBook(ByVal strWorkBook As String, xlApp As Excel.Application)

Dim xlCreateWorkBook As Excel.Workbook

Set xlCreateWorkBook = xlApp.Workbooks.Add

xlCreateWorkBook.SaveAs (strWorkBook)

End Function

Function GetPath(strPath As String) As String

GetPath = IIf(Len(strPath) = 3, strPath, strPath & "\")

End Function

这上面的函数只不过是一部分,其于的因为专用目的,写不标准,以后也许会整理出来一份标准的函数库的!

w.hua@ynmail.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有