内事不决问百度,外事不决问谷歌,工作难题就问deepseek。
如下图,当前文档中有多个工作表,今天咱们就让deepseek来创建带链接的工作表目录。

打开deepseek官网,输入咱们的要求:
excel文档中有多个工作表,希望生成带超链接的目录,请提供一段vba代码,并对代码进行注释,同时说明代码的使用方法。
思索片刻,deepseek就给出了解决方法:
sub createtableofcontents() ' 定义变量
dim ws as worksheet ' 用于循环遍历工作簿中的每个工作表
dim tocsheet as worksheet ' 用于引用目录工作表
dim rowindex as integer ' 用于跟踪目录中的行号
' 设置目录工作表和初始行号
set tocsheet = thisworkbook.sheets(1) ' 假设目录放在第一个工作表
rowindex = 1 ' 从第一行开始
' 清除目录工作表中的所有内容
tocsheet.cells.clear
' 添加目录标题
tocsheet.cells(rowindex, 1).value = "目录"
tocsheet.cells(rowindex, 1).font.bold = true
rowindex = rowindex + 1
' 循环遍历工作簿中的每个工作表
for each ws in thisworkbook.sheets
' 跳过目录工作表本身
if ws.name <> tocsheet.name then
' 在工作表中添加工作表名称和超链接
tocsheet.cells(rowindex, 1).value = ws.name
tocsheet.hyperlinks.add anchor:=tocsheet.cells(rowindex, 1), _
address:="", _
subaddress:="'" & ws.name & "'!a1", _
texttodisplay:=ws.name
rowindex = rowindex + 1
end if
next ws
' 调整目录工作表的列宽
tocsheet.columns("a:a").autofit
' 提示用户目录已生成
msgbox "目录已生成在第一个工作表中!", vbinformation
end sub同时给出了详细的代码说明:
变量定义:
ws:用于循环遍历工作簿中的每个工作表。tocsheet:用于引用目录所在的工作表。rowindex:用于跟踪目录中的行号。
设置目录工作表:
set tocsheet = thisworkbook.sheets(1):假设目录放在第一个工作表中。rowindex = 1:从第一行开始添加目录。
清除目录工作表中的所有内容:
tocsheet.cells.clear:清除目录工作表中的所有内容,以便生成新的目录。
添加目录标题:
tocsheet.cells(rowindex, 1).value = "目录":在第一行添加“目录”标题。tocsheet.cells(rowindex, 1).font.bold = true:将标题加粗。rowindex = rowindex + 1:行号加1,准备添加工作表名称。
循环遍历工作簿中的每个工作表:
for each ws in thisworkbook.sheets:循环遍历工作簿中的每个工作表。if ws.name <> tocsheet.name then:跳过目录工作表本身。tocsheet.cells(rowindex, 1).value = ws.name:在工作表中添加工作表名称。tocsheet.hyperlinks.add:为每个工作表名称添加超链接,点击后跳转到对应工作表的a1单元格。rowindex = rowindex + 1:行号加1,准备添加下一个工作表名称。
调整目录工作表的列宽:
tocsheet.columns("a:a").autofit:自动调整目录工作表的列宽,以便完整显示工作表名称。
提示用户目录已生成:
msgbox "目录已生成在第一个工作表中!", vbinformation:弹出一个消息框,提示用户目录已生成。
还给出了详细的使用方法:
1、打开excel工作簿,按 alt + f11 打开vba编辑器。
2、在vba编辑器中,点击插入 -> 模块,插入一个新模块。
3、将上述代码复制并粘贴到新模块中。
4、按 f5运行。
- 运行后,在第一个工作表中将生成一个带超链接的目录,点击目录中的工作表名称即可跳转到对应的工作表。
并且贴心的给出了注意事项::
- 如果目录工作表不是第一个工作表,请修改
set tocsheet = thisworkbook.sheets(1)中的索引号。 - 如果工作簿中有隐藏的工作表,它们也会被包含在目录中。如果不希望包含隐藏工作表,可以在循环中添加条件判断。
按说明进行操作,果然一秒出结果:

在对deepseek提问时,应该明确目标、数据结构、特殊需求、分步描述和具体例子,这些都是帮助模型准确生成excel代码或者公式的关键因素。
发表评论