Office中国论坛/Access中国论坛

标题: 如何一次设置很多HYPERLINK [打印本页]

作者: 罗生门    时间: 2005-1-28 00:06
标题: 如何一次设置很多HYPERLINK
问题:一个工作簿有30多个表,现在我想建立一个目录,上面显示各个表名,然后设置超级键连,使得目录上的表名可以直接跳转到那个工作表.

解决方案:请大家想想,我现在只能使用VBA把所有的表名一次列出来。

sub printname()

dim i as integer

for i=2 to sheets.count

sheets(1).cells(i-1,1).value=sheets(i).name

next i

end sub

然后录制了一个超级连接的宏,发现EXCEL是这么设计的

range("a1").select

activesheet.hyperlink.add anchor:=selection,subaddress:=***,texttodisplay:=***

不知道怎么改进,才可以快速解决这个问题。

实际上,我觉得RANGE对象有个缺点就是不利于程序设计,因为里面好象不好设置变量。大家有什么建议,帮忙拉。
作者: 老鬼    时间: 2005-1-28 01:56
其实RANGE对象的效率要比CELLS高,只不过看起来不太直观而已。你的要求用RANGE就很简单:Sub printname()

For i = 2 To Sheets.Count

    Range("B" & (i - 1)).Select

    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _

        Sheets(i).Name & "!A1", TextToDisplay:=Sheets(i).Name

Next i

End Sub


作者: 罗生门    时间: 2005-1-28 04:20
谢谢你,老鬼,我觉得你名字不COOL,但是又不知道怎么叫你,我用过了,很不错,我是一直固守思维,没想到range("b"&(i-1))这样的用法。呵呵,希望多多帮助。
作者: zhc7305    时间: 2005-2-18 18:51
再发挥一下,用漂亮的按钮来实现:

Sub 生成超链接()

'

' 时间: 2005-2-17

'

'生成工作薄表目录,以按钮进行链接

'

For i = 2 To Sheets.Count

        ActiveSheet.Shapes.AddShape(msoShapeActionButtonCustom, 352.5, 80 + (i - 2) * 40, 73.5, 25). _

            Select

        Selection.Characters.Text = Sheets(i).Name

        With Selection.Characters(Start:=1, Length:=2).Font

            .Name = "华文新魏"

            .FontStyle = "常规"

            .Size = 12

        End With

        Selection.HorizontalAlignment = xlCenter

        ActiveSheet.Hyperlinks.Add Anchor:=Selection.ShapeRange.Item(1), _

Address:="", SubAddress:=Sheets(i).Name & "!A1", TextToDisplay:=Sheets(i).Name

    Next i

End Sub

[此贴子已经被作者于2005-2-18 10:53:23编辑过]


作者: joyark    时间: 2005-3-12 02:20
你好:zhc73051.能否按否增加顏色2.增加按鈕位置在B行排列




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3