前言當然這要用到VBA,有人問VBA是不是很難,其實難的是我們不知道EXCEL的內(nèi)部運行機理,如果知道了EXCEL內(nèi)部是如何運行的,再稍微懂一點循環(huán)的語句和編程的思維,就容易多了。 好在EXCEL有錄制宏的功能,下面老崔就帶大家體驗一下學(xué)習(xí)VBA的過程。 1第一步:錄制宏我不會VBA,但我可以手動插入連接,此時你不妨把你的操作過程用宏錄制的功能記錄下來。 步驟: 開發(fā)工具-錄制宏-確定,宏默認保存在當前工作簿中 選中目錄工作表,選擇A1單元格,插入-超連接-本文檔中的位置-選擇單元格引用的工作表和地址-確定。 這樣就建立了第一個鏈接,如下圖: 點擊停止錄制按鈕,停止宏的錄制過程! 按ALT+F11打開VBA編輯器,打開當前工作簿的模塊1,代碼如下: Sub 宏1() ' ' 宏1 宏 ' ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",SubAddress:= _ "函數(shù)!A1", TextToDisplay:="函數(shù)!A1" End Sub 2第二步:分析代碼核心代碼只有一句,通過分析,我們基本了解了超連接的方法和屬性,如下圖所示: 3第三步:改進代碼單純的錄制是沒有意義的,我們就是要通過錄制,發(fā)現(xiàn)EXCEL內(nèi)部是如何運行的,他的代碼是如何組織的?然后改進它,為我們服務(wù)! 增加循環(huán)語句,使目標工作表在所有工作表中循環(huán)一遍,包括目錄工作表! For each sh in worksheets …… Next 增加判斷語句,如果工作表名稱不等于目錄,則執(zhí)行程序代碼,否則跳過。 If sh.Name <> "目錄" Then …… i=i+1 End If 把固定引用變成變量,如: 目錄地址:selection用cells(i,1)表示,通過i的遞增實現(xiàn)目錄單元格下移 目標地址:“函數(shù)!A1” 用 sh.name&"!A1" 表示,在不同的工作表中循環(huán)引用 顯示文本:“函數(shù)!A1”用:"表" &i & ":" & sh.Name 表示 所有代碼: Sub 目錄() Dim i As Integer Dim sh As Worksheet i = 1 For Each sh In Worksheets If sh.Name <> "目錄" Then Worksheets("目錄").Hyperlinks.Add Anchor:=Cells(i, 1), Address:="",SubAddress:= _ sh.Name & "!a1", TextToDisplay:="表" &i & ":" & sh.Name i = i + 1 End If Next End Sub 4第四步:調(diào)試運行程序鼠標放在代碼中的任意位置,按F8單步運行,按F5 運行整個過程。結(jié)果如下: 總結(jié)學(xué)習(xí)VBA從錄制代碼開始。 |
|