鱼C论坛

 找回密码
 立即注册
查看: 782|回复: 1

VBA卡死

[复制链接]
发表于 2024-12-30 13:19:41 | 显示全部楼层
VBA程序在删除行时卡死的原因可能有以下几点:

1. **事件递归**:在`Worksheet_Change`事件中,删除行可能会触发另一个`Worksheet_Change`事件,导致递归调用。虽然你已经使用`Application.EnableEvents = False`来防止递归,但在某些情况下,事件可能仍然会被触发。

2. **全局变量**:`IsDeleting`变量用于标识是否正在删除行,但在`DeleteRows`子程序中,可能没有正确地设置或重置这个变量,导致逻辑错误。

3. **隐藏行检测**:`IsDeletingRows`函数通过检测行是否隐藏来判断是否正在删除行,这种方法可能不够可靠。

以下是一些建议来解决这个问题:

- 确保在所有可能的退出路径中都正确地重置`Application.EnableEvents`和`IsDeleting`变量。
- 检查`IsDeletingRows`函数的逻辑,确保它能够准确地检测到删除行的操作。
- 在`DeleteRows`子程序中,确保在删除行之前和之后正确地设置和重置`IsDeleting`变量。

如果问题仍然存在,建议逐步调试代码,查看具体在哪一步出现了卡死的情况。


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-24 03:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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