【VB6|第19期】vb6通过COM组件操作Excel

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

日期2023年7月3日
作者Commas
签名(ง •_•)ง 积跬步以致千里,积小流以成江海……
注释如果您觉得有所帮助帮忙点个赞也可以关注我我们一起成长如果有不对的地方还望各位大佬不吝赐教谢谢^ - ^
1.01365 = 37.78340.99365 = 0.0255
1.02365 = 1377.40830.98365 = 0.0006


在这里插入图片描述


文章目录


一、前言

近期帮一个客户做了一个预处理Excel的小工具就想着总结一下关于 VB6 操作 Excel 的知识。本期主要讲解如何快速去使用 COMComponent Object Model技术来操作Excel并且学习一些主要的知识与概念等等快速构建一套使用该技术的思维习惯。

二、COM技术浅谈

COMComponent Object Model是一种微软的组件技术用于在不同的应用程序之间进行通信和交互其核心概念是将功能独立的代码封装为组件每个组件具有自己的接口和实现。组件可以被其他应用程序通过 COM 接口调用和使用实现了组件的复用和跨应用程序的互操作性。

Excel COM 组件是一种用于与 Microsoft Excel 进行交互的组件现在也可以和新版的 WPS Excel 进行交互。通过使用 Excel COM 组件可以通过编程方式自动化 Excel 应用程序执行各种任务例如创建、读取、修改和保存 Excel 工作簿、操作工作表、单元格和公式以及生成报表等。

三、通过COM操作Excel

要使用 Excel COM 组件我们需要在开发环境中引用 Microsoft Excel Object Library。。在以前电脑必须安装 MS Excel才可以使用此库经过测试现在电脑只安装新版本WPS Excel也一样可以使用此库。

3-1引用 Microsoft Excel Object Library 库

在这里插入图片描述

3-2创建、操作以及销毁 三部曲

  1. 创建 Excel COM 组件
  2. 各种想要的操作如读值、赋值等操作
  3. 销毁创建的 Excel COM 组件

主要的 Excel COM 如下所示

Excel COM说明
Excel.ApplicationExcel 应用程序的实例
Excel.WorkbookExcel 应用程序中的一个工作簿Workbook
Excel.SheetsExcel 工作簿中所有的工作表Worksheet
Excel.WorksheetExcel 工作簿Workbook中的一个工作表

示例如下
在这里插入图片描述

Option Explicit

Private Sub Form_Load()
On Error Resume Next
    '1创建
    Dim xlApp As Excel.Application      'Excel COM 组件,Excel 应用程序的实例
    Dim xlBook As Excel.Workbook        'Excel COM 组件,Excel 应用程序中的一个工作簿Workbook
    Dim xlSheets As Excel.Sheets        'Excel COM 组件,Excel 工作簿中所有的工作表Worksheet
    Dim xlSheet As Excel.Worksheet      'Excel COM 组件,Excel 工作簿Workbook中的一个工作表
    'Set xlApp = New Excel.Application              'NO1前期绑定实例化对象
    Set xlApp = CreateObject("Excel.Application")   'NO2后期绑定实例化对象
    Set xlBook = xlApp.Workbooks.Open(App.Path & "\example.xlsx")
    Set xlSheets = xlBook.Worksheets

    '2操作
    xlApp.Visible = False        'Excel 应用程序窗口的可见性控制
    '当 ScreenUpdating = True 时 Excel 将显示对工作表的更改
    '当 ScreenUpdating = False 时Excel 将在后台执行操作不显示对工作表的更改从而提高执行速度。
    xlApp.ScreenUpdating = False 'Excel 应用程序的屏幕更新控制
    
    Set xlSheet = xlSheets(1) ' xlSheets("Sheet1")
    ' 读取单元格的值
    Debug.Print xlSheet.Range("A2").value, xlSheet.Range("B2").value
    ' 写入单元格的值
    xlSheet.Range("A3").value = "李小龙"
    Debug.Print xlSheet.Cells(3, 1).value
    
    xlApp.ScreenUpdating = True

    '3销毁
    ' 保存并关闭工作簿
    xlBook.Save     ' 保存Excel文件
    xlBook.Close    ' 关闭Excel文件
    xlApp.Quit      ' 关闭Excel Application对象
    
    ' 释放资源
    Set xlSheet = Nothing
    Set xlSheets = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing

End Sub

补充一点如果想要更好的兼容性那么最后生成 exe 的时候将 Excel COM 全部定义为 object采用后期绑定的方式这样就不用纠结 Excel 版本的问题

四、常见问题的处理方案

4-1引用中找不到Excel库的解决方案

如果在引用中找不到Microsoft Excel Object Library库那么就点选“浏览(B)…”选择安装的Excel程序以下以 MS Excel 作为演示

  • 点击 WIN键然后输入 excel 点选 打开文件位置
    在这里插入图片描述

  • 右键 Excel点选 打开文件位置
    在这里插入图片描述

  • 按住 ctrl,接着右键点选 复制文件地址(A)
    在这里插入图片描述

  • 将地址填入点击 打开(O)
    在这里插入图片描述

4-2只有WPS Excel的电脑运行程序报错的解决方案

在这里插入图片描述
对于上图所示的报错如果不想安装 MS Excel那么也可以安装更高版本的 WPS Excel经过不同电脑测试此方案可以很完美的解决此问题。

4-3程序运行很卡CPU资源占用很高的解决方案

在这里插入图片描述

如果运行挺久才得到结果期间CPU可能高达50%而其它电脑又是正常速度的那么此类问题的解决方案同4-2一致更新 Excel 应该就可以解决了。


版权声明本文为博主原创文章如需转载请给出
原文链接https://blog.csdn.net/qq_35844043/article/details/130256762

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6