1. 程式人生 > >自動設定Excel中的超連結屬性

自動設定Excel中的超連結屬性

前段時間為了設計程式碼從程式碼網站管理員那裡要來了程式碼的說明,包括兩部分,一部分是一個程式碼目錄,是一個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檔案。