一、引用Microsoft Excel 15.0Object Library
机房收费系统中多个窗体用到从MSFlexGrid记录导出为Excel,在VB要导出数据到Excel中,首先要在引用中添加引用Microsoft Excel 15.0Object Library,前提是电脑上有office应用程序,即使有office程序,有时候在引用中找不到这一项,别急,按以下步骤走,便会搞定。
1、点击浏览
2、添加引用
找到execl所在位置,在文件类型选择*exe;*.dll,然后找到exe文件,选中execl.Exe,点击打开。再打开工程-引用,奇迹出现。
二、以下代码仅供参考
1、数据从控件MSHFlexGrid中导出
Private SubcmdExportExcel_Click()
Dim xlApp As New Excel.Application '创建excel对象,使excel对用户可见
Dim xlBook As Excel.Workbook '声明工作簿对象
Dim xlSheet As Excel.Worksheet '声明工作表单
If MSHFlexGrid.Text = ""Then '判断是否有记录可供导出
MsgBox "没有记录可导出!", vbOKOnly +vbExclamation, "警告"
Exit Sub
Else
Set xlBook =xlApp.Workbooks.Add(1) '创建新的空白工作簿
Set xlSheet =Excel.ActiveWorkbook.ActiveSheet '创建新的工作表单
For i = 0 To MSHFlexGrid.Rows -1 '填入数据
For j = 0 To MSHFlexGrid.Cols -1
xlSheet.Cells(i + 1, j + 1)= MSHFlexGrid.TextMatrix(i, j)
Next j
Next i
xlApp.Visible = True '显示Excel表格
End If
End Sub
2、将函数定义在模块中
然后在窗体中再调用它,这样不仅省时间省代码,还有利于提高系统的稳定性
Private SubcmdExportExcel_Click()
Dim xlApp As New Excel.Application '创建excel对象,使excel对用户可见
Dim xlBook As Excel.Workbook '声明工作簿对象
Dim xlSheet As Excel.Worksheet '声明工作表单
If MSHFlexGrid.Text = ""Then '判断是否有记录可供导出
MsgBox "没有记录可导出!", vbOKOnly +vbExclamation, "警告"
Exit Sub
Else
Set xlBook =xlApp.Workbooks.Add(1) '创建新的空白工作簿
Set xlSheet =Excel.ActiveWorkbook.ActiveSheet '创建新的工作表单
For i = 0 To MSHFlexGrid.Rows -1 '填入数据
For j = 0 To MSHFlexGrid.Cols -1
xlSheet.Cells(i + 1, j + 1)= MSHFlexGrid.TextMatrix(i, j)
Next j
Next i
xlApp.Visible = True '显示Excel表格
End If
End Sub
由于机房收费系统中多次用到这个功能,把这些代码写到了模块中,既方便又省时。所以,学习就是从无从下手到找到解决办法,然后从一种解决办法到多种解决办法,然后还可以从一个点拓展到一个面,学习就是积少成多的一个过程。
三、拓展
1、word也可以实现和vb交互
Private subcommand3_click()
<span style="font-size:14px;"><span style="white-space:pre"> </span>Set wrdApp = NewWord.application
<span style="white-space:pre"> </span>With wrdApp
<span style="white-space:pre"> </span> .visible = true
<span style="white-space:pre"> </span> .Documents.Add '创建文档
<span style="white-space:pre"> </span> .ActiveDocument.Content.text = “Hi” '在word文档中放置文本
<span style="white-space:pre"> </span>.ActiveDocument.Content.text = “nihao”
<span style="white-space:pre"> </span>wrdApp.ActiveDocument.close '关闭当前文档
</span><h1><span style="font-size:14px;"><span style="white-space:pre"> </span>wrdApp.quit '关闭应用程序</span></h1><span style="font-size:14px;">
<span style="white-space:pre"> </span>set xlsApp =nothing
<span style="white-space:pre"> </span>set wrdApp =nothing</span>
<span style="font-size:14px;">end sub</span>
2、VBA
除了execl和word,office中的PowerPoint,Access,Outlook以及Project都可以实现和vb的交互,但这一切都基于vb的一种宏语言VBA。
宏语言即VISUALBASIC FOR APPLICATION,简称 VBA,是新一代 MICROSOFT WINDOWS 应用软件通用的宏控制语言,它与 VB既有区别,又有联系,VB是开发WINDOWS应用程序的程序语言,是一种面向对象的程序设计语言,VBA是VB的一个子集,它更为强调的是对OFFICE软件(Excel、access、word等)各类功能的一种控制,除此之外,它还能通过记录宏,直接生成宏程序代码,当然,VBA也具备同VB一样的程序语言基本结构。
Visual Basic 的应用程序版(VBA)是Microsoft公司长期追求的目标,使可编程应用软件得到完美的实现,它作为一种通用的宏语言可被所有的Microsoft 可编程应用软件所共享。在没有VBA 以前,一些应用软件如Excel、Word、Access、Project 等都采用自己的宏语言供用户开发使用,但每种宏语言都是独立的,需要用户专门去学习,它们之间互不兼容,使得应用软件之间不能在程序上互联。有了VBA 以后,多种应用程序共用一种宏语言,节省了程序人员的学习时间,提高了不同应用软件间的相互开发和调用能力。
确切地讲,VBA是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案.比如V对于Excel而言,BA可以称作EXCEL的“遥控器”.