0

我必须知道每个超链接引用的是哪张幻灯片。为此,我正在查看 ActivePresentation.Slides(sliNum).Hyperlinks(linkNum).SubAddress 似乎是什么幻灯片正在引用链接。这里我放了一个 SubAddress 的结果:“380,3,dINK the company”

这里我真正需要的是昏迷之间的数字(在这种情况下为 3)。例如,当我在第三张幻灯片之前放置一张新幻灯片时,问题就来了。现在我想要的幻灯片是第四张,但 SubAddress 没有改变。我尝试使用 ActivePresentation.UpdateLinks 以及 shape.LinkFormat.Update 和 shape.LinkFormat.AutoUpdate 但没有任何效果,SubAddress 仍然继续不改变。

我放置了我放置的代码以查找链接参考:

   For Each s In ActivePresentation.Slides

        For i = 1 To s.Hyperlinks.count

          Dim cou As Integer
          Dim linkNumber As String
          le = Len(s.Hyperlinks(i).SubAddress)
          cou = InStr(s.Hyperlinks(i).SubAddress, ",")
          linkNumber = Mid(s.Hyperlinks(i).SubAddress, cou + 1, InStrRev(s.Hyperlinks(i).SubAddress, ",") - (cou + 1))

在简历上,我需要以某种方式更新子地址,否则如果有人知道另一种方式来了解引用的位置,那么超链接也会很棒。我使用的链接类型是 msoHyperlinkRange

4

1 回答 1

1

当 PPT 第一次创建超链接时,它会将子地址设置为 SlideID,SlideIndex,Slide Title

如果幻灯片稍后被移动,或者幻灯片标题发生变化,这会使后两位信息无效,但幻灯片的 SlideID 永远不会改变,所以当有疑问时,PPT 会使用它。

这可以使链接正常工作,至少在 PPT 中是这样,但是(错误地)依赖 SlideIndex 进行链接的其他程序会遇到麻烦。

您可以通过解析 SlideID(作为字符串)来了解当前的 SlideIndex,然后:

SlideIndex = ActivePresentation.Slides.FindBySlideID(CLng(sSlideID))
于 2013-08-28T14:50:46.223 回答