自动设置Excel中的超链接属性

来源:互联网 发布:origin矩阵画图 编辑:程序博客网 时间:2024/06/05 17:19

前段时间为了设计代码从代码网站管理员那里要来了代码的说明,包括两部分,一部分是一个代码目录,是一个Excel文件里面有两列数据,一列代码,一列代码说明,另一部分是两千多个Excel文件,每个文件都是某个代码的详细说明,并且每个文件都以代码名命名,我们希望在阅读代码目录时如果想了解一个代码的具体含义,可以方便地找到和打开这个代码说明文件,用超链接的方式可以很好地解决这个问题,但是不可能手动地对代码目录文件的每一格单元格进行超链接设置,下面是利用powerbuilder程序设置Excel目录文件中每一个单元格的超链接属性的方法。

 

用程序操作Excel一般都是通过VBA来实现的,对某个单元格的超链接属性的设置是用HyperlinksAdd方法来实现的,下面是VBA中的语法说明:

语法

object.Add(Anchor, Address, SubAddress, ScreenTip, TextToDisplay)

object   必选。该表达式返回 Hyperlinks 对象。

Anchor   Object 类型,必选。超级链接的位置。可为 Range 对象或 Shape 对象。

Address   String 类型,必选。超级链接的地址。

SubAddress   Variant 类型,可选。超级链接的子地址。

ScreenTip   可选 Variant 类型。当鼠标指针停留在超级链接上时所显示的屏幕提示。

TextToDisplay   可选 Variant类型。为超级链接显示的文本。

具体实现采用了下面的脚本:

STRING ls_file//需要打开的文件名

STRING ls_Anchor// Object 类型,必选。超级链接的位置。可为 Range 对象或 Shape 对象。

STRING ls_Address//String 类型,必选。超级链接的地址。

 

FOR li_i = 2 to 2351//代码目录中的代码有2351

         ls_Anchor = "B"+string(li_i)//要设置的但也格,代码目录文件中的代码存放在第二列,B列,li_i为行号

         ls_Address = "Store/"+ls_file+".XLS"//代码详细说明的Excel文件存放在和代码目录文件同级目录的Store文件夹下,ls_file是代码名同时也是代码说明文件的文件名

         IF FileExists (ls_Address) THEN

         ole_excel.Worksheets(1).Hyperlinks.Add(ole_excel.Worksheets(1).Range(ls_Anchor),ls_Address)

         END IF     

NEXT

 

另外因为要操作EXCEL,所以在设置超链接属性时,要先建立一个OLE对象,和EXCEL进行连接,具体脚本如下:

 

ole_excel = CREATE OLEObject //建立OLE对象

li_rtn = ole_excel.ConnectToObject("","Excel.Application")   //联接EXCEL

 

//如果Excel还没有打开,则新建。

IF li_rtn <> 0 THEN

         li_rtn = ole_excel.ConnectToNewObject("Excel.Application")

         //新建EXCEL失败,提示错误,退出函数

         IF li_rtn <> 0 THEN

                   MessageBox('导出错误','无法连接EXCEL!~n错误号:' + String(li_rtn),Stopsign!)

                   DESTROY ole_excel

                   RETURN 0

         END IF

END IF

 

//ls_currentpath = GetCurrentDirectory()

IF NOT FileExists (ls_filename) THEN

         MessageBox("导出","制定的excel文件损毁或丢失!~导出失败!",exclamation!)

         //断开与EXCEL的联接

         ole_excel.DisconnectObject()

         //注销OLE对象

         DESTROY ole_excel

         RETURN 0

END IF

ole_excel.Workbooks.Open(ls_filename)

ole_excel.Visible = TRUE

 

在正常设置完超链接属性后,要断开和EXCEL的连接,并注销OLE对象

//断开与EXCEL的联接

ole_excel.DisconnectObject()

 

//注销OLE对象

DESTROY ole_excel

 

通过以上的设置,在阅读代码目录文件时,如果想了解某个代码的详细说明,直接单击该代码说明,就可以打开这个代码的详细说明的EXCEL文件。 
原创粉丝点击