我有一个Excel宏,可以在表的第一列中创建超链接。
当我在手动模式下一步一步地运行它时,它工作正常,并创建超链接。
当我在自动模式下运行时,它运行时没有任何错误,但未创建超链接。
我没有任何想法为什么......?
Public Sub aktualisieren()
Call Column_MakeHyperlinks(1)
End Sub
然后
Sub Column_MakeHyperlinks(Blatt)
' ### Start Tabellenanalyse ###
' - Länge
' - Start
' - Ende
On Error Resume Next
Set WS = Sheets(Blatt) '
Set Tabelle = WS.ListObjects(1) ' Get Table
Anzahl = Tabelle.ListRows.Count ' Number of Rows in Table
Start = Tabelle.ListRows(1).Range.Row ' First Row in Table
Ende = Tabelle.ListRows(Tabelle.ListRows.Count).Range.Row ' Last Row in Table
sMsg = "There are " & Anzahl & " Rows in '" & Tabelle.Name & "'. "
sMsg = sMsg & DNL & "Start in Row " & Start
sMsg = sMsg & NL & ", Ende in Row " & Ende
'MsgBox sMsg, vbInformation, UCase(sTableName) ' Activate for Text-Output
' ### Ende Tabellenanalyse ###
iRow = Start ' Start at first Row with content
iCol = 1 ' Column A
' Parameters, which should be concatenated to the link are in column A
WS.Hyperlinks.Delete
Do While WS.Cells(iRow, iCol).Value <> ""
' create Hyperlink (fixed prefix and dynamic parameter
Temp = WS.Cells(iRow, iCol).Value
'WS.Cells(iRow, iCol).Select ' Not necessary, only to make active cell visible in manual mode
WS.Hyperlinks.Add Anchor:=WS.Cells(iRow, iCol), Address:="https://www.google.de/?gws_rd=ssl#q=" & ActiveSheet.Cells(iRow, iCol).Value, _
TextToDisplay:=Temp, _
ScreenTip:="https://www.google.de/?gws_rd=ssl#q=" & ActiveSheet.Cells(iRow, iCol).Value
'move to the next row
iRow = iRow + 1
Loop
End Sub
任何人都可以解释为什么吗?提前谢谢!
答案 0 :(得分:0)
对我来说,你的代码有效,超链接被创建,但似乎是&#34;无效&#34;。 我补充说:
WS.Cells(iRow, iCol).Value = WS.Cells(iRow, iCol).Value
在iRow增量之前解决了超链接的问题&#34;活动&#34;
另外,迭代listobject列的单元格的方式应该是:
For Each c In Tabelle.ListColumns("column_name").DataBodyRange
Temp = c.Value
WS.Hyperlinks.Add Anchor:=c, Address:="https://www.google.de/?gws_rd=ssl#q=" & c.Value, _
TextToDisplay:=Temp, _
ScreenTip:="https://www.google.de/?gws_rd=ssl#q=" & c.Value
c.Value = c.Value
Next
答案 1 :(得分:0)
我发现了我的问题:我在数据库的第一列中获取了数据。当我进行刷新时,它在后台运行,并且在导入数据时创建链接。
我找到了一个复选框&#34;允许后台实现&#34;在&#34; Connections&#34;菜单并取消选中它。这和用户avb的答案解决了我的问题。
谢谢!!