今天爆震室管理系统——学生查看机器状态的时候发现有一个“导出到excel”的button。我去。感情还得跟excel表链接。

于是我咬碎了一地小银牙。一个下午都在查询vb与excel
的链接的问题。

我大体的思路是:

首先。在vb中引用Excel类型库。

如图:

其次,声明excel的对象。这里不单单仅仅是声明一个excel表,还要声明工作簿和工作表

例如以下代码:

Dim xlApp As Excel.Application

Dim xlBook As Excel.Workbook

Dim xlSheet As Excel.Worksheet

最后,就能够在vb程序对excel表进行操作。

在机房管理系统中主要的操作有:

Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类

xlApp.Visible =
True '设置EXCEL可见

Set xlBook = xlApp.Workbooks.Open(App.Path & "\新建 Microsoft Excel 工作表.xls") '打开EXCEL工作簿

Set xlSheet = xlBook.Worksheets(1) '打开EXCEL工作表

xlSheet.Activate '激活工作表

xlSheet.Cells(1, 1) = myflexgrid.TextMatrix(0, 0)……'给单元格1行驶列赋值

xlBook.RunAutoMacros (xlAutoOpen) '执行EXCEL中的启动宏

另外,另一些拓展的操作:

xlSheet.PrintOut '打印工作表

xlBook.Close (True) '关闭工作簿

xlApp.Quit '结束EXCEL对象

Set xlApp = Nothing '释放xlApp对象

问题1(excel宏的作用):

EXCEL提供一个VisualBasic编辑器,打开VisualBasic编辑器,当中有一project属性窗体,点击右键菜单的"插入模块",则添加一个"模块1",在此模块中能够运用VisualBasic语言编写函数和过程并称之为宏。当中,EXCEL有两个自己主动宏:一个是启动宏(Sub Auto_Open()),还有一个是关闭宏(SubAuto_Close())。它们的特性是:当用EXCEL打含有启动宏的工簿时,就会自己主动执行启动宏。同理,当关闭含有关闭宏的工作簿时就会自己主动执行关闭宏。可是通过VB的自己主动化功能来调用EXCEL工作表时,启动宏和关闭宏不会自己主动执行,而须要在VB中通过命令xlBook.RunAutoMacros(xlAutoOpen)和xlBook.RunAutoMacros
(xlAutoClose)来执行启动宏和关闭宏。

(我的理解就是EXCEL中的VBA就是VB在EXCEL中的应用)

问题2(下标越界):

面对着问题应该出在flexgrid控件上,你在设计界面时把初始列数9。既能够攻克了。

特别说明:

在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见。否则VB程序可继续运行其他操作。也可以关闭EXCEL。同一时候也可对EXCEL进行操作。但在EXCEL操作过程中关闭EXCEL对象时,VB程序无法知道。假设此时使用EXCEL对象。则VB程序会产生自己主动化错误。

形成VB程序无法全然控制EXCEL况。作VB与EXCEL失去联系。

版权声明:本文博主原创文章,博客,未经同意不得转载。

计算机管理系统——VB与Excel联系的更多相关文章

  1. 机房管理系统——vb与excel链接2

    因为我之前找的文档让我以为在创建表里面走了非常大的误区,所以当时我直接就在学生管理系统的目录里建了张表,执行时候直接打开这样表即可了. 可是这里面还是存在着非常大的误区. 后来我看了周坤的博客感觉他比 ...

  2. 办公用品管理系统VB——库存数量导出EXCEL,SaveEXCEL

    办公用品管理系统VB——库存数量导出EXCEL,SaveEXCEL 总体来说,VB的EXCEL导出效率还是蛮低的,就是一个小型化的办公用品管理软件,不再优化了. 时间紧迫,就没有从头到尾的用C#编写, ...

  3. C#/VB.NET Excel数据分列

    C#/VB.NET Excel数据分列 有时候我们需要将保存在Excel单元格中的组合型数据拆分为多列(如将全名拆分为姓和名两列)以方便我们处理.记忆或保存.为了避免重复和大量的手动输入工作,Exce ...

  4. VB操作EXCEL文件

    用VB操作Excel(VB6.0)(整理) 首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel. ...

  5. 用VB操作Excel的方法

    VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便.因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报 ...

  6. VB操作EXCEL文件大全

    Private Sub writeToExcel(strTmp1() As String, colTmp1 As Collection)'' Dim tmp1 Dim i1 As Integer, i ...

  7. VB中Excel 2010的导入导出操作

    VB中Excel 2010的导入导出操作 编写人:左丘文 2015-4-11 近来这已是第二篇在讨论VB的相关问题,今天在这里,我想与大家一起分享一下在VB中如何从Excel中导入数据和导出数据到Ex ...

  8. VB读写Excel

        近期用excel和VB比較多,就简单的学习了一下VB中对Excel的处理.今天就介绍一些吧.       在VB中要想调用Excel,须要打开VB编程环境“project”菜单中的“引用”项目 ...

  9. 如何使用VB编写Excel的COM组件

    1 新建工程中选择"外接程序",点击打开之后右侧的属性窗口即显示为MyAddIn工程.(注意如果你使用的是VB精简版的没有"外接程序"的选项,请下载完整版的) ...

随机推荐

  1. php学习之道:php中soap的使用实例以及生成WSDL文件,提供自己主动生成WSDL文件的类库——SoapDiscovery.class.php类

    1. web service普及: Webservice soap wsdl差别之个人见解 Web Service实现业务诉求:  Web Service是真正"办事"的那个,提供 ...

  2. java nio-理解同步、异步,阻塞和非阻塞

    理解同步.异步,阻塞和非阻塞 结论:阻塞.非阻塞与是否同步异步无关.     转自知乎 “阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解, ...

  3. like-minded 都有什么意思_百度知道

    like-minded 都有什么意思_百度知道 like-minded 都有什么意思

  4. Phaser是一款专门用于桌面及移动HTML5 2D游戏开发的开源免费框架

    Phaser是一款专门用于桌面及移动HTML5 2D游戏开发的开源免费框架,提供JavaScript和TypeScript双重支持,内置游戏对象的物理属性,采用Pixi.js引擎以加快Canvas和W ...

  5. hdu2295(重复覆盖+二分)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2295 题意::一个国家有n个城市,有m个地方可以建造雷达,最多可以建K个雷达(K>=1 & ...

  6. Makefile分析基础

    http://blog.csdn.net/ghostyu/article/details/6866863 在我前一篇写的[ linux驱动学习(一)Makefile基础]中,Makefile写的中规中 ...

  7. const void *a 与 void *const a 的差别

    const void *a 这是定义了一个指针a,a能够指向随意类型的值,但它指向的值必须是常量. 在这样的情况下,我们不能改动被指向的对象,但能够使指针指向其它对象. 比如: const void ...

  8. ServiceProvider实现

    ServiceProvider实现揭秘 [总体设计 ] 本系列前面的文章我们主要以编程的角度对ASP.NET Core的依赖注入系统进行了详细的介绍,如果读者朋友们对这些内容具有深刻的理解,我相信你们 ...

  9. 该View转换成Bitmap方法

    方法一: /** * 该View绘制到Bitmap上 * @param view 须要绘制的View * @param width 该View的宽度 * @param height 该View的高度 ...

  10. 学习 easyui 之二:jQuery 的 ready 函数和 easyloader 的加载回调函数

    Ready 事件不一定 ready 使用 easyloader 的时候,必须要注意到脚本的加载时机问题,easyloader 会异步加载模块,所以,你使用的模块不一定已经加载了.比如下面的代码. &l ...