VBA遍历工作表时包含"ABC"触发文件输入弹窗的原因排查
遍历工作表时含"ABC"触发文件选择弹窗的原因分析
问题场景
我用以下VBA代码遍历预定义的工作表列表,但只要数组里包含"ABC",就总会弹出要求选择文件的窗口;把"ABC"从数组里移除后,就完全没有这个弹窗了。想问问这是啥原因?
Dim nTable As Variant nTable = Array("Table 1", "Table 2", "Table 3", "Table 4", "Table 8", _ "Table 11", "Table 12", "Table 13", "ABC") For w = LBound(nTable) To UBound(nTable) With ActiveWorkbook.Worksheets(nTable(w)) ' 这里是我写的其他操作代码 End With Next w
问题原因
这事儿其实很直白——你当前打开的工作簿里根本没有名为"ABC"的工作表!
当VBA执行ActiveWorkbook.Worksheets(nTable(w))这段代码时,如果找不到对应名称的工作表,Excel会默认触发文件选择对话框,它误以为你是要引用其他外部工作簿里的工作表,所以让你手动选择目标文件。
你可以快速验证一下:看看当前工作簿的工作表标签栏,确认有没有"ABC"这一项。如果确实没有,那就是这个原因无疑了。
如果你的本意是要操作"ABC"工作表,要么在当前工作簿里新建这个表,要么检查是不是名字写错了(比如大小写、多打/漏打空格这类细节);要是"ABC"是不小心误加进数组的,直接删掉就解决问题啦。
内容的提问来源于stack exchange,提问作者lydias
相关产品推荐
相关产品推荐

