分享

VB导出Excel

 hdzgx 2019-12-06
完成查询充值记录的代码后,对查询+导出有一些感悟。

在学习机房收费系统时,对于查询+导出的困难,个人认为是导出相对于我自己比较难,主要有三点:

1,我写过程不熟练;
2,这是excel与vb的结合使用,由于VB与EXCEL由于分别属于不同的应用系统对于我来说是一个挑战;
3,是一个新的知识点。
  我主要在写代码的时候,主要先了解了vb与Excel之间的关系。后来在完成了代码,其步骤如下:
第一步:
一般设计窗体时用到了MSHFlexGrid,MSHFlexGRid ,DataGrid等部件时,会需要导出一些报表,就会调用Microsoft Office Excel。我首先要连接下Excel的对象,因为在vb调用Excel中要用到一些对象。其对象如下图:

       1, Application对象表示Excel运用程序本身。作用是提供在相应的程序,实例中当前用户的对象的信息。如图所示:


       2,Workbook对象表示Excel应用程序的单个工作簿。主要是vb要制定一个特定的工作簿。

       3,Worksheet对象就是我们平常在Excel的sheet表。主要是vb指定的一个特定的sheet表。包含了Range对象和Cell对象。range对象包含了cell对象。

       4,Chart对象表示工作表中的图表。

    介绍了以上的Excel对象后,我们在VB中调用Excel的时便会很清楚对象的声明,及位置,在脑海了就已经形成一幅Excel表。
 

      第二部:代码。

    在自定义过程中。代码如下:

  1. Public Sub ExportExcel(formname As Form, FlexGridName As String) '参数传递
  2. xlApp As Excel.Application '声明application对象,Excel运用程序本身。作用是提供在相应的程序,实例中当前用户的对象的信息。
  3. Dim xlBook As Excel.WorkBook '声明workbook。Workbook对象表示Excel应用程序的单个工作簿。主要是vb要制定一个特定的工作簿。
  4. Dim xlSheet As Excel.Worksheet '声明worksheet。Worksheet对象就是我们平常在Excel的sheet表。主要是vb指定的一个特定的sheet表。包含了Range对象和Cell对象。
  5. Screen.MousePointer = 11 'Screen.MousePointer = vbHourglass 'VbHourglass 11 被显示的鼠标指针的类型为沙漏(表示等待状态)。
  6. On Error GoTo Err_Proc
  7. Set XLApp = CreateObject("Excel.Application") '创建EXCEL对象
  8. Set XLBook = XLApp.WorkBooks.Add '添加一个EXCEL工件簿文件并且添加内容
  9. ' Set XLSheet = XLBook.Worksheets("sheet1") '设置活动工作表,表的名字也可以更改,不再叙说
  10. Set XLSheet = XLBook.WorkSheets(1)
  11. '将数据填入到excel中
  12. Dim LngRows As Long
  13. Dim Intcols As Integer
  14. With formname.Controls(FlexGridName)
  15. '对行和列进行循环
  16. For LngRows = 0 To .Rows - 1
  17. For Intcols = 0 To .Cols - 1
  18. XLSheet.Cells(LngRows + 1, Intcols + 1).Value = "'" & .TextMatrix(LngRows, Intcols)
  19. Next Intcols
  20. Next LngRows
  21. End With
  22. XLApp.Visible = True '显示当前窗口
  23. XLApp.Caption = "学生充值记录查询" '更改 Excel 标题栏
  24. 'Screen.MousePointer = vbDefault 'vbDefault 0 (缺省值)形状由对象决定。
  25. Screen.MousePointer = 0
  26. Exit Sub
  27. Err_Proc:
  28. Screen.MousePointer = vbDefault 'vbDefault 0 (缺省值)形状由对象决定。
  29. MsgBox "请确认您的电脑已安装Excel!", vbExclamation, "提示"
  30. End Sub

注:标红色的地方是最容易出错的也是重要的地方。

   当然有的文章也提及到了加“引用”的问题,以上的代码是没有加引用,但是我也测试了以下:

   从"工程"菜单中选择"引用"栏;选择Microsoft Excel 14.0 ObjectLibraryEXCEL2010),然后选择"确定"。表示在工程中要引用EXCEL类型库。如图:

 然后再把上溯的代码敲一遍即可。但是我也不知道加了引用与直接使用的区别,有待我的研究,如果大家有知道的请留言给我。谢谢。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多