ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 粘贴时要求不触发worksheet_Change

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-3-20 14:07 | 显示全部楼层 |阅读模式
因工作需要,
参照B站发布的一个视频"EXCEL连接数据库(SQL或ACCESS)实现增删改查视频教程简介"(发布者:Access_SQL_VB编程)用VBA建了一个excel连接SQL SERVER数据库的EXCEL文件。
其中为了方便查询、修改、新建,需要在表格先将SQL sever数据库的数据提取到EXCEL的sheet1中,希望修改某个数据,对应数据的首列对应自动出现更改、新增等标识。
查了一下,是可以通过worksheet_Change来实现,但问题是当最初从SQL SEVER中提取数据并粘贴到sheet1时,也是等于修改了SHEET1表格,此时触发了worksheet_Change,导致程序崩溃死机,并直接退出。

因此求助,如何能够粘贴时(sheet1.range("b2").copyfromrecordset rs)时不触发worksheet_Change,但之后修改数据时,能够对应地在A列对应的单元格中自动填写"变更"?

另外视频中导出数据的数据是在SHEET中插入一个表格,而数据是一行行循环增加的,如果SQL的记录集数据多,应该如何一次性扩大插入表格的列和行?

盼有大佬能够解答,谢谢!

TA的精华主题

TA的得分主题

发表于 2023-3-20 20:56 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-25 13:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
剑指E 发表于 2023-3-20 20:56
上下两行将夹在中间试试

谢谢楼主回复,上面这个方法应该也行,但由于复制数据的次数很多,用这个方法不太适合。
我自己另外想办法解决了,思路是当选定的范围大于1时,不触发
if Target.Cells.Count > 1 then
Application.EnableEvents = False

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-9-28 00:18 , Processed in 0.031960 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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