如何批量建立excel中的超链接

来源:百度文库 编辑:神马文学网 时间:2024/06/13 06:11:28

         当我们需要对某个文件目录及其子目录下的所有文件进行管理时,希望能通过一个excel表建立所有文件的超链接,这样能方便查看。

          当我们需要向上级提交报告,报告中包含大量的链接文档。记得有一次公司CMMI评级,评审目录PIID中预计包含3000个文件超链接。如果逐个文档去建立超链接,那个劳动强度太可怕。

          基于以上各种情况,我决定要找出如何批量建立超链接的方法。

          准备工具:UltraEdit(文本编辑器),文件名提取器。这些工具百度一下有很多。

 步骤:

         1、使用文件名提取器,获取目标文件夹下(根据需要可以包括子目录)的文件全路径和后缀。保存获取结果。

         2、用UltraEdit打开路径结果,其中每一行例如:E:\test\test.txt。

         3、Excel中关于超链接的函数如下:=HYPERLINK("路径","显示名称")

         4、  使用UltraEdit(实际上只要是有列模式的编辑器都可以)的列模式加工结果。形成大量的路径文本,如下:

                  =HYPERLINK("路径1","显示名称1")

                  =HYPERLINK("路径2","显示名称2")

                  =HYPERLINK("路径3","显示名称3")

         5、  将文本全选粘贴到excel中,就大功告成了。

 

========我是分割线==========================================================================

 使用一段时间后,发现新的问题:

         以复制粘贴的方式建立了大量的超链接。就会出现一部分超链接失效的现象。HYPERLINK的写法是一模一样的两个超链接,也会出现一个能打开,另一个报“打不开指定文件”。郁闷啊·~~~   会不会是office套件在超链接的处理上存在bug?或者有缓存泄漏之类的问题? 上网查了半天也没找到答案。

          PS:据说以传统方式建立的超链接(从文件目录中链接那种),一开始可以打开,过了几天也会出现偶尔失效的情况。

 

========新的进展和发现==========================================================================

         进一步发现,所有失效的超链接,在鼠标停留时,显示file:///+绝对路径。 这肯定是打不开的。

         因此,不需要等到点击超链接,报错“打不开指定文件”时,才发现链接失效。而只要鼠标停留就能发现。

         怀疑是超链接在多个excel文件之间反复拷贝的过程中,由于某种原因,路径由相对路径变成了绝对路径。

         但是,每一个超链接都要鼠标停留来检查也是非常耗费时间。所以希望能通过vb程序来检查。

         两个思路:

         1、使用Hyperlinks.ScreenTip来显示链接提示内容。从而筛选出含有“file:///”的字符。

         2、在vb中循环对超链接进行跟踪,捕获打开异常,从而筛选出失效的链接。

         问题:

         1、对vb非常不熟悉,基本语法、调试方法需要学习。

         2、Hyperlinks.ScreenTip不显示默认内容,如果通过右键超链接编辑,写入自定义的提示文本。则该方法仅显示自定义提示文本。所以第一个思路不可行。

         3、跟踪超链接(即打开超链接),尚未找到合适的方法函数。并且,如果将所有文件都打开,估计会死机,所以第二个思路也不太可行。

 

========又过了几天==========================================================================

          仍然没有找到产生“file:///”的原因,但是能够通过以下vb代码将这些链接标识成红色:

    For Counter = 1 To 19

        Worksheets(Counter).Activate    ‘遍历所有sheet   

        For Each hlink In Cells.Hyperlinks

            Range(hlink.Range.Address).Font.Color = RGB(255, 0, 0) ‘设置超链接字体颜色为红色

        Next

    Next Counter

         然后,使用excel“查找”中设定格式查找,将所有的红色字体单元格查找出来,逐一修改。

         但是不知道为什么,hlink.Range.Address不会返回使用hyperlink函数创建的超链接。