vba下标越界

Fori=0Tovnum-1Sheets(Effvar(i)).SelectRange(Cells(1,1),Cells(scennum,timestepnum+1)).... For i = 0 To vnum - 1

Sheets(Effvar(i)).Select
Range(Cells(1, 1), Cells(scennum, timestepnum + 1)).Copy
Workbooks(sTemplateName).Sheets(Effvar(i)).Cells(2, 2).PasteSpecial Paste:=xlPasteValues
Next
很长一段程序,到这里出现下标越界,怎么处理
展开
 我来答
阳光上的桥
推荐于2016-12-06 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65813
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
这个地方的下标越界,有两种可能,一是因为不存在sTemplateName名字的工作薄造成Workbooks(sTemplateName)越界,二是Effvar(i)值不合理造成工作表Sheets(Effvar(i))越界。

遇到越界的时候你选择“调试”,添加对上面这些变量的监视,你就知道具体是什么原因导致了越界,然后才能确定解决方法。
追问
看来是Effvar(i)值不合理造成,怎样改呀
追答
调试Effvar(i)值为多少?

你希望它为多少,就是你想操控那个表?
繁华尽失dCL01
2014-06-11 · TA获得超过110个赞
知道答主
回答量:119
采纳率:0%
帮助的人:155万
展开全部
你的工作簿里没有这个叫"sheet2"的工作表(改名来着?第一次运行已经被删除了?)
满意请采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
姓王的wy451

2014-06-11 · TA获得超过48.3万个赞
知道大有可为答主
回答量:8万
采纳率:78%
帮助的人:8896万
展开全部
这个错误再这两句代码中两个地方都可能引起:
1、Sheets(Effvar(i))中数组 Effvar(i) 变量的数字小于1或大于工作表个数, 如果是字符与工作表名不一样。
2、 Workbooks(sTemplateName) 中 sTemplateName 变量,与前面类似,只是对工作簿而言。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式