
还是下标越界的问题!
很感谢你耐心细致的解释,我明白了之前那个下标越界的例子,可是下面这段也是报错下标越界的,这里又是什么导致下标越界的?Substhadd()DimiAsInteger,sh...
很感谢你耐心细致的解释,我明白了之前那个下标越界的例子,可是下面这段也是报错下标越界的,这里又是什么导致下标越界的?
Sub sthadd()
Dim i As Integer, sht As Worksheet
i = 2
Set sth = Worksheets("成绩表")
Do While sht.Cells(i, "C") <> ""
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = sht.Cells(i, "C").Value
i = i + 1
Loop
End Sub 展开
Sub sthadd()
Dim i As Integer, sht As Worksheet
i = 2
Set sth = Worksheets("成绩表")
Do While sht.Cells(i, "C") <> ""
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = sht.Cells(i, "C").Value
i = i + 1
Loop
End Sub 展开
2个回答
推荐于2017-09-09 · 知道合伙人软件行家
关注

展开全部
你这个下标越界,是这一句么?
Set sth = Worksheets("成绩表")
如果是,那么是因为你的表格里面没有“成绩表”这张表。。
没有的话,那肯定出错。。
Set sth = Worksheets("成绩表")
如果是,那么是因为你的表格里面没有“成绩表”这张表。。
没有的话,那肯定出错。。
追问
是这里出错的,那把这个删掉就可以了?这段语句是我最近学vba的书上的
追答
你在工作簿里面新建一张表,名称就叫“成绩表”
就可以测试了
来自:求助得到的回答
展开全部
是不是应该写成Worksheets.Count-1,VB下标是以0开始的
更多追问追答
追问
Set sth = Worksheets("成绩表") 是这里报错的! 而且我这个是和书上的一模一样的!不明白。而且如果从0开始的话,肯定会报错的,sheet表没有从0开始,都是从1开始的。
追答
你这用的是VBA, 还是老版本的VB语言,或Excel托管语言,
对象是不是要先实例化,如下
set sth= New Worksheets("成绩表")
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询