标题:请问我下面这个程序怎么总提示下标越界
只看楼主
cdhilite
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2018-1-20
结帖率:40%
已结贴  问题点数:20 回复次数:4 
请问我下面这个程序怎么总提示下标越界

Sub 获取工作表名称()
    Columns("A:A").Select
    Selection.ClearContents
i = 1
For Each sh In Sheets
Cells(i, 1) = sh.Name
i = i + 1
Sheets("目录").Hyperlinks.Add Anchor:=Sheets("目录").Cells(i, 1), _
Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", _
TextToDisplay:=Sheets(i).Name, ScreenTip:="单击打开:" & Sheets(i).Name
Next
End Sub
Function IsSht(ShtName As String)
On Error Resume Next
Dim sht As Worksheet
Set sht = Sheets(ShtName)
IsSht = (Err = 0)
End Function
Sub 返回目录()
'如果有“目录”则返回“目录”工作表
If IsSht("目录") Then Sheets("目录").Select
End Sub
搜索更多相关主题的帖子: Sub 目录 End Name 提示 
2020-06-03 09:31
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:20 
i = 1                        '起始
For Each sh In Sheets
Cells(i, 1) = sh.Name      
i = i + 1                    '下一个

Sheets("目录").Hyperlinks.Add Anchor:=Sheets("目录").Cells(i, 1), _
Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", _
TextToDisplay:=Sheets(i).Name, ScreenTip:="单击打开:" & Sheets(i).Name

这句里面,有这节,
Sheets(i).Name
当所有的工作表都索引完后,i 的值仍然是下一个可能工作表的编号,但这时工作表都已索引完了,也已经 i 大于了工作表的总数,这节就导致 下标越界。

授人于鱼,不如授人于渔
早已停用QQ了
2020-06-03 10:38
cdhilite
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2018-1-20
得分:0 
回复 2楼 风吹过b
谢谢大侠,请问怎么更改?谢谢!
2020-06-03 11:09
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
把 i=i+1 放到 这句后面,也就是 next 上面一行就是了。

你没发现你这里生成的内容不对吗?
Sheets("目录").Hyperlinks.Add Anchor:=Sheets("目录").Cells(i, 1), _
Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", _
TextToDisplay:=Sheets(i).Name, ScreenTip:="单击打开:" & Sheets(i).Name

授人于鱼,不如授人于渔
早已停用QQ了
2020-06-03 12:22
cdhilite
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2018-1-20
得分:0 
谢谢大侠!
2020-06-03 13:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501942-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013824 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved