超链接屏幕提示导致工作簿需要修复

时间:2017-03-14 20:23:44

标签: excel vba excel-vba

我正在使用VBA创建Excel中不同工作表中单元格的超链接,当我添加屏幕提示时,一切正常,直到我关闭工作簿。

重新打开后,Excel会进行修复并强制我打开只读。摆脱屏幕提示解决了问题,但屏幕提示非常方便。

有谁知道可能导致这种情况的原因?

Hyperlinks.Add wb.Sheets("Summary").Cells(j, i + 2), "", "'" & i & "'!" & wb.Sheets(i + 1).Cells(3, col).Address, scrTip

编辑:

以下是我用来创建scrTip的代码。

scrTip = ""

For indx = 0 To 4

      If TopCost(indx) <= 0 Then Exit For

      If indx > 0 Then scrTip = scrTip & vbCrLf
      scrTip = scrTip & strTopCost(indx) & " - " & Round(TopCost(indx))

Next indx

数组strTopCost包含的描述可以包含&#34;, - ,&amp;,/,#等符号,而topcost数组包含数字。当scrTip为空时,屏幕提示显示超链接的位置。

2 个答案:

答案 0 :(得分:1)

请尝试以下方法:

wb.Sheets("Summary").Hyperlinks.Add _
    AnchorAnchor:=Cells(j, i + 2), _
    Address:="", _
    SubAddress:="'" & i & "'!" & wb.Sheets(i + 1).Cells(3, col).Address, _
    ScreenTip:=scrTip

此外,请确保在创建新超链接之前删除任何现有的超链接:

Dim hyp As Hyperlink
For Each hyp In ThisWorkbook.Sheets("Summary").Hyperlinks
    hyp.Delete
Next hyp

答案 1 :(得分:0)

我发现了这个问题。一些屏幕提示太长,所以我将它们的长度限制在25个字符之后,之后工作正常。