ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 205|回复: 2

[求助] VBA 批量清除及dll调用速度慢问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-10-26 18:38 | 显示全部楼层 |阅读模式
本帖最后由 何洋 于 2024-10-26 18:42 编辑

各位老师,最近使用VBA批量清除时遇到一些问题

1. 工作组批量清除问题
我在工作簿中新建了3张工作表,每个工作表中有一个数据表(绿色背景,每张工作表的表格位置一样),现在我想清除表格中的内容
image.png
在VBA中使用每个表格循环的方法删除表格中的内容,这个方法可行

'方法一:使用循环方法清除工作表同一位置中数据
  Dim ii&, shtname()
  shtname = Array("Sheet1", "Sheet2", "Sheet3")
  For ii = 0 To 2 Step 1
    Worksheets(shtname(ii)).Range("A2:E2,A4:E4,A6:E6,A8:E8").ClearContents
  Next ii

但是现在我有上百张表格,这个速度有点慢;我想到了工作表可以组合成工作组批量删除,用手动的方法将工作表组合成工作组清除的方法没问题,但是使用VBA方法时,只能清除第一张工作表中的数据,其它工作表中的数据没有被清除,这个是什么原因呢?

  Dim shtname()
  shtname = Array("Sheet1", "Sheet2", "Sheet3")
  Sheets(shtname).Select  '将工作表组成工作组
  Range("A2:E2,A4:E4,A6:E6,A8:E8").ClearContents
  Selection.ClearContents

2.批量清除批注的问题
工作表中有一个数据表格(蓝色背景),有的单元格存在批注,现在要清除掉数据表格中的批注 测试文件.rar (18.27 KB, 下载次数: 0)
image.png
使用 for each 方法循环Range("A13:E19")中的每个单元格可以实现,单元格区域小了还行,但我实际工作中的单元格区域很大,工作表也多,这样循环速度很慢,于是我想到先找到有批注的单元格的地址,然后将所有地址组合起来使用Range对象批量清除,结果没有达到目的,这个方法只能清除掉第1个单元格中的批注,这个是什么原因呢

  Dim rng As Range, cell As Range
  Set rng = Range("A13:E19")
  
  Dim comAdd$
  For Each cell In rng
    If Not cell.Comment Is Nothing Then
      comAdd = comAdd & cell.Address(0, 0) & ","
    End If
  Next cell
  comAdd = Left(comAdd, Len(comAdd) - 1)
  Range(comAdd).Select
  Range(comAdd).Comment.Delete

3. DLL速度调用慢的问题
  我用VB6.0制作的dll文件,在Windows系统中注册完后,刚开始使用VBA调用时很流畅,速度也很快,后面我多次注册后(dll文件基本没变化),发现调用时很慢,很卡,不知道是不是和我注册的次数是否有关


TA的精华主题

TA的得分主题

发表于 2024-10-26 19:40 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
DLL速度调用慢的问题
提速的话 openxml或者Python go语言开发可能会快点

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-27 13:05 | 显示全部楼层
zpy2 发表于 2024-10-26 19:40
DLL速度调用慢的问题
提速的话 openxml或者Python go语言开发可能会快点

好的,谢谢老师,我在网上查下看怎么用
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-26 22:43 , Processed in 0.029547 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表