问题补充说明:有一个总表,假如我想打开某个具体信息,就要打开另一张表,我想做个超链接,只要点一下他就能打开另一个表,这个我会做,只是这样太多了,有7000多个文件,请教高手一下具体怎样操作?20分悬偿,
请问那7000多个文件是放在同一个目录下吗?或者说是否只要为某个目录下的所有Excel文件在那个总表里面建立超链就可以了。
还有,超链显示在单元格里面的文字是什么?文件名(去除前面的目录名)?
___________________________________360问答__
补充,下面这个步骤可以收集位于不同文件夹下面的表格文件名,并在当前打开的这个总表的第三列里为所有这些表格文件建立超链:
后直扬乎室省1、在Excel里面打开或者新建一个表格作为总表;
2、在表格标签上单击鼠标右键,选择“查看代码”;
3、粘贴如下代码到编辑器里面去:
OptionExplicit
SubBuildHyperlinksToWorkbook章得安婷判龙线板s()
OnErrorResum四九eNext
DimarrFoldersAsNewCollection
DimstrFolder,strFi练初高微械leAsString
十适雷孙敌既讨拿果Dimfso,oFolder,oFile
DimoCellAsRange
DimnRowIndexAsInteger,nColumnIndexAsInteger
Setfso=CreateObject("Scripting江给娘装翻答混等.FileSystemObject")
'设置这个数字来控制把超级链接生成到第几列
nColumnIndex=3
'在下面调整/增/删需要搜索的文件夹
arrFolders.Add"C:\Temp\docs\test1\"
arrFolders.Add"C:\Temp\docs\test2\"
arrFolders.Add"C:\Temp\docs\test3\"
nRo革章年法是护刚世证项wIndex=1
ForEachstrFolderInarrFolders
SetoFolder=fso.GetFolder(strFolder)
ForEachoFil非那胶它晚参原细直庆名eInoFolder.Files
strFi排烟没该记脱外告le=oFile.Path
If(UCase(Right(strFile,4))=".XLS")Or(UCase(Right(strFile,5))=".XLSX")Then
SetoCell=Cells(nR书滑决己调王owIndex,nColumnIndex)
oCell.Hyperlinks.AddAnchor:=oCell,Address:="file://"&strFile,TextToDisplay:=strFile
nRowIndex=nRowIndex+1
EndIf
Next
Next
SetoFolder=Nothing
Setfso=Nothing
M断脸矿去延迅转风抗破面sgBox"完成!"
EndSub
4、根据需要增加/删除上面内城妈又抗需式成百球与代码中需要搜索的文件夹;同时也可以控制把超级链接生成到第几列去;
5、键入F5运行看到“完成!”结束;
6、键入ALT+Q退出代码编辑返回Excel表格界面,检查建毛回牛兴所有超链是否正确生成。
如果以后不在需要批量插入超链,则可以在保存这个总表前把上面的代码全部删除。从而避免了每次打开这个总表文件时,Excel都要提示是否启用宏什么的。