注册 登录
编程论坛 Excel/VBA论坛

如何在索引的那边根据选择隐藏或者显示后边的sheet页

YSJXLLLC 发布于 2022-11-22 11:14, 2018 次点击
只有本站会员才能查看附件,请 登录

标黄的那里运行老显示下标越界,各位大神有啥解决的方法吗


[此贴子已经被作者于2022-11-22 11:15编辑过]

16 回复
#2
厨师王德榜2022-11-22 14:01
不妨把文件也传上来. 如果数据涉密的话,可以把敏感数据更改一下.
#3
YSJXLLLC2022-11-22 17:23
回复 2楼 厨师王德榜
只有本站会员才能查看附件,请 登录
#4
厨师王德榜2022-11-22 17:39
初始运行时,应该把焦点停在哪个Sheet?
#5
厨师王德榜2022-11-22 17:51
先 补充一个Function,判定一下这个Sheet是否存在?
程序代码:
Public Function Sheet_Exist(shtName) As Boolean
Dim sht1 As Worksheet
On Error GoTo err_lab1
Set sht1 = Worksheets(shtName)
Sheet_Exist = True
Set sht1 = Nothing
err_lab1:

End Function


在隐藏/显示/引用 某个Sheet前,先判定一下,例如:
If Sheet_Exist(st) Then
    ......
End If
#6
YSJXLLLC2022-11-23 09:42
回复 4楼 厨师王德榜
索引那一页
#7
厨师王德榜2022-11-23 12:41
把你的意图完整的描述一次 ? 如果不想公开,可以给我私信.
#8
YSJXLLLC2022-11-23 14:59
回复 7楼 厨师王德榜
我希望通过索引的那一页,对备注那一列打勾的对应sheet进行显示,没有打勾的,进行隐藏。
#9
厨师王德榜2022-11-23 17:36
未找到"索引",或许,你说的"索引",是指的这个?
只有本站会员才能查看附件,请 登录
#10
YSJXLLLC2022-11-24 09:29
回复 9楼 厨师王德榜
只有本站会员才能查看附件,请 登录

这个文件,搞错了
#11
厨师王德榜2022-11-24 16:52
备注栏"打勾",这个动作被改为: 备注栏 填写"1"
若 填写1,则Sheet显示,否则 隐藏.  
只有本站会员才能查看附件,请 登录


#12
YSJXLLLC2022-11-28 16:13
回复 10楼 YSJXLLLC
收到,感谢大佬!!!
#13
YSJXLLLC2022-11-28 16:16
回复 11楼 厨师王德榜
收到,谢谢大佬!!!
#14
YSJXLLLC2022-11-29 14:05
回复 5楼 厨师王德榜
只有本站会员才能查看附件,请 登录
#15
厨师王德榜2022-11-29 17:20
以索引表中的 B57 格为例,B57中的内容是:
"以公允价值计量且其变动计入当其损益的金融负债评估程序及复核表"
那么,对应Sheet的A1格的值,一定要和B57中的值一模一样才行,
否则,会出现:"未采集到此报表名称"
此例中A1格的值是多少呢? 是:
"以公允价值计量且其变动计入当期损益的金融负债评估程序及复核表"
你仔细对比一下,这两个字串不一样.这样程序当然就找不到了.

也就是说,须遵守以下规则:
索引中的表名称,在B列
实际各个Sheet表的名称,在各个Sheet的A1格,
索引表中的 B列 的内容,一定 和各个各个Sheet的A1格内容完全对应.
#16
YSJXLLLC2022-11-30 09:33
回复 15楼 厨师王德榜
呃呃呃,我懂了,谢谢!

[此贴子已经被作者于2022-11-30 09:49编辑过]

#17
阳光上的桥2023-01-13 12:33
sheets(st)报下标溢出错,说明没有对应的工作表,此时可以在调试界面把鼠标停留在此行st变量上,看系统显示的值是多少,对应的工作表不存在导致了报错。

特别提示两点:
一是当st的值是数字时(例如123)或造成二义性错误,该语句会显示对应序号的工作表,一般不会有123个,自然报错。
二是工作表里面A列表名称的末尾不得有多余的空格,要和工作表名称完全一致。
1