楼主 罗刚君 |
对工作表创建带链接的目录见多了吧?但如果目录所指向的目标工作表处于隐藏状态时照样能打开的则没见过吧? 有兴趣的话,不防跟着学习,操作动画和源代码一并奉上! 摘自《Excel 2010 VBA编程与实践》书中案例40,第77页 工作表目录.rar |
2楼 rabbitllu |
VBA就是强大呀,坚决下载学习 |
3楼 xmyjk |
谢谢罗版分享。 |
4楼 [CN]★中★和★ |
对老师的敬仰有如滔滔江水 |
5楼 南方有嘉木n_n |
我用了这个代码试了一下,发现如果工作表名称是文本型的数值,且首位为“0”,创建到目录时会自动将首位0取消掉,也就是变成了数值型。这个能在代码中解决吗? |
6楼 罗刚君 |
在代码中将文件名转换成文本即可,单元格的格式也采用文本 代码很简单 |
7楼 南方有嘉木n_n |
一点不懂代码,怎么改? |
8楼 pkpkyb |
可以哟 |
9楼 mmice |
模块1 这样改 Sub 建立目录() Dim i As Integer '声明变量 On Error Resume Next '防错,表示遇到代码错误时继续执行下一步 Application.ScreenUpdating = False '关闭屏幕更新,加快执行速度 For i = 1 To Sheets.Count '遍历所有工作表(循环检查每个表的名字) If Sheets(i).Name = "工作表目录" Then GoTo you '如果有“工作表目录”则跳转到you处 Next Sheets.Add.Name = "工作表目录" '新建工作表,且命名为“工作表目录” Sheets("工作表目录").Move after:=Sheets(Sheets.Count) '将新表移到最后面 Columns("A:A").HorizontalAlignment = xlCenter '将A列居中显示 Columns("B:B").HorizontalAlignment = xlLeft '将B列左对齐 Range("A:B").NumberFormatLocal = "@" '将AB列的单元格格式设置为文本 Range("A2").Select '选择A2 ActiveWindow.FreezePanes = True '然后锁定窗格(目的是冻结首行) you: '指定一个标签。(可以从本过程中任何地方跳转到此处继续执行) Sheets("工作表目录").Select '选择工作表目录 Range("A:B").Clear '清除原有数据 Range("A1:B1") = Array("编号", "目录") '写入标题 For i = 1 To Sheets.Count - 1 '遍历所有工作表(工作表目录除外) Cells(i + 1, 1).Value = i '在A列写入编号 If IsNumeric(Sheets(i).Name) Then Cells(i + 1, 2).Value = "'" & (Sheets(i).Name) '在B列创建工作表名 '创建工作表目录 ActiveSheet.Hyperlinks.Add Anchor:=Cells(i + 1, 2), Address:="", SubAddress:="'" & Sheets(i).Name & "'" & "!A1", TextToDisplay:=Sheets(i).Name, ScreenTip:="单击打开:" & Cells(i + 1, 2) Next Application.ScreenUpdating = True '恢复屏幕更新 End Sub |
10楼 ks-108 |
建立文件目录及隐藏工作表 |
11楼 ks-108 |
转走,谢了! |
12楼 wfel100 |
我不可以不用手动编辑咯 |
13楼 297476073 |
感谢!灰常的谢谢! |
14楼 yytax2010 |
要有返回目录隐藏所有工作表就好了! |