You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA使用UsedRange.Rows.Count时触发Error 9:下标越界问题

VBA下标越界(Error 9)问题排查与解决

问题背景

宏功能为:在「Daily Email」工作表F列输入"AG"/"CL"并保存后,将当前编辑行剪切粘贴到「AG Mtg Archive」或「Client Mtg Archive」工作表底部。此前运行正常,现触发下标越界(Error 9),报错指向代码行:

H = Worksheets("Daily Email").UsedRange.Rows.Count

已尝试重命名变量、修改变量类型为Integer,问题未解决。

核心原因与解决步骤

1. 确认目标工作表存在且名称完全匹配

  • 检查当前工作簿中是否存在**「Daily Email」**工作表,注意名称的中英文、空格、大小写需完全一致(Excel工作表名称不区分大小写,但VBA引用时需和实际名称完全匹配)
  • 若工作表被隐藏,先取消隐藏(右键工作表标签→取消隐藏)后重试
  • 若工作表被误重命名,改回原名称,或直接修改代码中的工作表名称为当前实际名称

2. 限定工作簿引用范围

原代码未指定工作簿,可能误引用其他打开的工作簿。修改代码为明确指向当前宏所在工作簿:

H = ThisWorkbook.Worksheets("Daily Email").UsedRange.Rows.Count

3. 替换UsedRange为更可靠的行计数方式

UsedRange可能因工作表残留格式导致行计数异常,改用按列F定位最后一行:

H = ThisWorkbook.Worksheets("Daily Email").Cells(Rows.Count, "F").End(xlUp).Row

4. 排查工作表保护状态

若「Daily Email」工作表被保护,取消保护(审阅→撤销工作表保护)后再运行宏。

内容的提问来源于stack exchange,提问作者swl23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 18:05:19