日期:2023年7月3日
作者:Commas
签名:(ง •_•)ง 积跬步以致千里,积小流以成江海……
注释:如果您觉得有所帮助
,帮忙点个赞
,也可以关注我
,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^
1.01365 = 37.7834;0.99365 = 0.0255
1.02365 = 1377.4083;0.98365 = 0.0006
文章目录
- 一、前言
- 二、COM技术浅谈
- 三、通过COM操作Excel
- (3-1)引用 Microsoft Excel Object Library 库
- (3-2)创建、操作以及销毁 三部曲
- 四、常见问题的处理方案
- (4-1)引用中找不到Excel库的解决方案
- (4-2)只有WPS Excel的电脑运行程序报错的解决方案
- (4-3)程序运行很卡,CPU资源占用很高的解决方案
一、前言
近期帮一个客户做了一个预处理Excel的小工具,就想着总结一下关于 VB6
操作 Excel
的知识。本期主要讲解如何快速去使用 COM
(Component Object Model
)技术来操作Excel
,并且学习一些主要的知识与概念等等,快速构建一套使用该技术的思维习惯。
二、COM技术浅谈
COM
(Component 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)创建、操作以及销毁 三部曲
- 创建
Excel COM
组件; - 各种想要的操作,如读值、赋值等操作;
- 销毁创建的
Excel COM
组件;
主要的 Excel COM
如下所示:
Excel COM | 说明 |
---|---|
Excel.Application | Excel 应用程序的实例 |
Excel.Workbook | Excel 应用程序中的一个工作簿(Workbook ) |
Excel.Sheets | Excel 工作簿中所有的工作表(Worksheet ) |
Excel.Worksheet | Excel 工作簿(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