VB导出Excel
完成查询充值记录的代码后,对查询+导出有一些感悟。
在学习机房收费系统时,对于查询+导出的困难,个人认为是导出相对于我自己比较难,主要有三点: 1,我写过程不熟练;
1, Application对象表示Excel运用程序本身。作用是提供在相应的程序,实例中当前用户的对象的信息。如图所示:
2,Workbook对象表示Excel应用程序的单个工作簿。主要是vb要制定一个特定的工作簿。
3,Worksheet对象就是我们平常在Excel的sheet表。主要是vb指定的一个特定的sheet表。包含了Range对象和Cell对象。range对象包含了cell对象。
4,Chart对象表示工作表中的图表。 介绍了以上的Excel对象后,我们在VB中调用Excel的时便会很清楚对象的声明,及位置,在脑海了就已经形成一幅Excel表。
第二部:代码。 在自定义过程中。代码如下: Public Sub ExportExcel(formname As Form,FlexGridName As String) '参数传递 xlApp As Excel.Application '声明application对象,Excel运用程序本身。作用是提供在相应的程序,实例中当前用户的对象的信息。 Dim xlBook As Excel.WorkBook '声明workbook。Workbook对象表示Excel应用程序的单个工作簿。主要是vb要制定一个特定的工作簿。 Dim xlSheet As Excel.Worksheet '声明worksheet。Worksheet对象就是我们平常在Excel的sheet表。主要是vb指定的一个特定的sheet表。包含了Range对象和Cell对象。 Screen.MousePointer = 11 'Screen.MousePointer = vbHourglass 'VbHourglass 11 被显示的鼠标指针的类型为沙漏(表示等待状态)。 On Error GoTo Err_Proc Set XLApp = CreateObject("Excel.Application") '创建EXCEL对象 Set XLBook = XLApp.WorkBooks.Add '添加一个EXCEL工件簿文件并且添加内容 ' Set XLSheet = XLBook.Worksheets("sheet1") '设置活动工作表,表的名字也可以更改,不再叙说 Set XLSheet = XLBook.WorkSheets(1) '将数据填入到excel中 Dim LngRows As Long Dim Intcols As Integer With formname.Controls(FlexGridName) '对行和列进行循环 For LngRows = 0 To .Rows - 1 For Intcols = 0 To .Cols - 1 XLSheet.Cells(LngRows + 1,Intcols + 1).Value = "'" & .TextMatrix(LngRows,Intcols) Next Intcols Next LngRows End With XLApp.Visible = True '显示当前窗口 XLApp.Caption = "学生充值记录查询" '更改 Excel 标题栏 'Screen.MousePointer = vbDefault 'vbDefault 0 (缺省值)形状由对象决定。 Screen.MousePointer = 0 Exit Sub Err_Proc: Screen.MousePointer = vbDefault 'vbDefault 0 (缺省值)形状由对象决定。 MsgBox "请确认您的电脑已安装Excel!",vbExclamation,"提示" End Sub
注:标红色的地方是最容易出错的也是重要的地方。 当然有的文章也提及到了加“引用”的问题,以上的代码是没有加引用,但是我也测试了以下: 从"工程"菜单中选择"引用"栏;选择Microsoft Excel 14.0 ObjectLibrary(EXCEL2010),然后选择"确定"。表示在工程中要引用EXCEL类型库。如图:
然后再把上溯的代码敲一遍即可。但是我也不知道加了引用与直接使用的区别,有待我的研究,如果大家有知道的请留言给我。谢谢。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |