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
很长一段程序,到这里出现下标越界,怎么处理 展开
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
很长一段程序,到这里出现下标越界,怎么处理 展开
3个回答
展开全部
这个地方的下标越界,有两种可能,一是因为不存在sTemplateName名字的工作薄造成Workbooks(sTemplateName)越界,二是Effvar(i)值不合理造成工作表Sheets(Effvar(i))越界。
遇到越界的时候你选择“调试”,添加对上面这些变量的监视,你就知道具体是什么原因导致了越界,然后才能确定解决方法。
遇到越界的时候你选择“调试”,添加对上面这些变量的监视,你就知道具体是什么原因导致了越界,然后才能确定解决方法。
追问
看来是Effvar(i)值不合理造成,怎样改呀
追答
调试Effvar(i)值为多少?
你希望它为多少,就是你想操控那个表?
展开全部
你的工作簿里没有这个叫"sheet2"的工作表(改名来着?第一次运行已经被删除了?)
满意请采纳。
满意请采纳。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个错误再这两句代码中两个地方都可能引起:
1、Sheets(Effvar(i))中数组 Effvar(i) 变量的数字小于1或大于工作表个数, 如果是字符与工作表名不一样。
2、 Workbooks(sTemplateName) 中 sTemplateName 变量,与前面类似,只是对工作簿而言。
1、Sheets(Effvar(i))中数组 Effvar(i) 变量的数字小于1或大于工作表个数, 如果是字符与工作表名不一样。
2、 Workbooks(sTemplateName) 中 sTemplateName 变量,与前面类似,只是对工作簿而言。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询