excel - 总是被踢出潜艇?
问题描述
每次我运行这个循环时,只要 VBA 执行清除内容,我总是会被踢出模块 5 中的子程序,并最终在模块 2 中进入与循环无关的 RGB 函数!
我已经搞砸了一段时间,但似乎我找不到解决方案!我已经持续了一段时间......忽略它并没有改变任何东西;-)
有没有人见过这个问题?
Do While Line >= 1
set WS_TREATED_DATA = ActiveWorkbook.Sheets("TREATED_DATA")
Range("A" & Line & ":" & "I" & Line).ClearContents
Loop
解决方案
我敢打赌,您的RGB
函数是一个 UDF,用于(调用)一个或多个单元格。
当您ClearContents
在WS_TREATED_DATA上 任何工作表处于活动状态(Range
不合格)时,它会导致该工作表上的重新计算,并且如果重新计算中涉及任何用户定义的函数 (UDF),它将被调用。Loop
在处理完所有工作表事件后,将继续执行语句。
如果您想将重新计算推迟到循环之后,请设置Application.Calculation
为,然后在您准备重新计算时xlCalculationManual
将其设置回。xlCalculationAutomatic
如果在修改工作表时有事件处理程序运行代码,则需要切换Application.EnableEvents
以禁用这些事件处理程序。
也就是说,BigBen 是正确的,这里不需要循环……除非缺少某些代码,否则该循环是无限的(Line
永远不会增加)。
推荐阅读
- javascript - 在 Vue 组件中渲染本地图像,其中图像位置存储在数据属性中
- reactjs - 如何在不重新渲染组件的情况下更新反应状态?
- javascript - 由于“未定义不是函数”未填充函数,简单的 babel.js 独立测试在 Chrome v40 中不起作用
- sql - 拦截查询oracle数据库11g(电子商务套件)
- c# - 序列化 C# 不可变结构的最佳实践是什么?
- c# - 带有 ASP.NET 的 Google 日历 API
- android - 本机模块中的异常,FirebaseAuth 解析失败
- powershell - 我的脚本将多个 Get-LocalGroupMember 命令的输出显示为一个对象。如何拆分它们?
- java - 如何使用spring-data在mongodb中创建全文搜索查询?
- python - python中的子域暴力破解