(Excel错误?)避免在使用Excel生成的所有PDF页面上重复超链接命中区域

(Excel错误?)避免在使用Excel生成的所有PDF页面上重复超链接命中区域,excel,pdf,vba,Excel,Pdf,Vba,我在Excel2007生成的PDF中发现了一些奇怪的东西。我需要在工作表上创建带有超链接的文本框,设置重复标题行以便打印,然后将工作表导出为PDF 下面是发生的情况。PDF的第一页将显示文本框,它可以按预期作为链接单击。但奇怪的是,以下所有页面都会有一个区域,该区域也可以在与第一页文本框大致相同的位置单击,但那里什么都没有——即第二页明显空白,但页面上的某个地方有一个空白的可单击区域,可以打开第一页文本框的链接。这是不可取的 下面的一些代码将准确地准备场景: ' Run this pro

我在Excel2007生成的PDF中发现了一些奇怪的东西。我需要在工作表上创建带有超链接的文本框,设置重复标题行以便打印,然后将工作表导出为PDF

下面是发生的情况。PDF的第一页将显示文本框,它可以按预期作为链接单击。但奇怪的是,以下所有页面都会有一个区域,该区域也可以在与第一页文本框大致相同的位置单击,但那里什么都没有——即第二页明显空白,但页面上的某个地方有一个空白的可单击区域,可以打开第一页文本框的链接。这是不可取的

下面的一些代码将准确地准备场景:

    ' Run this procedure
Public Sub TestRepeatingHyperlinkHitArea()
    Call AddDummyContent
    Call CreateTextBoxWithHyperlink

    ActiveSheet.PageSetup.PrintTitleRows = ActiveSheet.Rows(1).Address
    Call ActiveSheet.ExportAsFixedFormat(xlTypePDF, _
        "RepeatingHyperlinkHitArea.pdf", OpenAfterPublish:=True)
End Sub

Public Sub AddDummyContent()
    ' Needed only to create multiple pages
    Call ActiveSheet.Cells.Clear
    Dim i As Integer
    For i = 1 To 300
        ActiveSheet.Cells(i, 1).Value = i
    Next i
End Sub

Public Sub CreateTextBoxWithHyperlink()
    If ActiveSheet.Shapes.Count = 1 Then
        Call ActiveSheet.Shapes(1).Delete
    End If

    Dim TB As Shape
    Set TB = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _ 
        100, 100, 150, 50)
    TB.TextFrame.Characters.Text = "I'm a textbox with a hyperlink"
    Call ActiveSheet.Hyperlinks.Add(TB, "http://www.example.com")
End Sub
将其粘贴到空白工作簿中,然后运行TestRepeatingHyperlinkHitArea。它将准备活动表并创建PDF。在PDF中,用鼠标在第二页上搜索,在其上半页将出现一个链接的命中区域,该链接与第1页的链接相同,但不可见

这是可以避免的吗?我真的不想在页面上出现鬼链接。只有设置了ActiveSheet.PageSetup.PrintTitleRows,并且只有第一页上的超链接作为重影链接重复时,才会出现这种情况。我假设超链接命中区域以某种方式呈现在与PrintTitleRows相同的层上。这是不好的,因为它们在PDF中重复出现

我尝试将ActiveX标签用作超链接,而不是普通的文本框,因为它们没有显示此问题—它们不会被渲染为形状?),但在VBA中调用ActiveSheet.Hyperlinks.Add作为超链接目标时,设置它们是一团乱,无论我如何尝试将它们转换为形状,ActiveX标签上的添加都会出错。但仍在努力

欢迎任何关于在PDF中创建重复标题行的超链接的想法


编辑:指向生成的PDF文件的Dropbox链接:

您能测试我在下面的Excel 2007中发布的代码吗?如果问题仍然存在,那么我将删除我的答案,并尝试在excel 2007中进行测试。好的,我已删除答案。让我拿一份excel 2007进行测试。您可以在任何免费文件共享网站上传pdf,然后在Dropbox上共享此处上传的链接,链接是有问题的文本。我在Linux上用KDE的Okular too PDF Viewer打开了PDF文件,它显示了相同的症状-第二页空白,但可单击区域作为链接,就像第一页上的文本框一样。是的,我可以在PDF文件中看到。我将不得不在Excel 2007中测试它。我还将尝试使用运行Excel 2010的计算机,并尝试此操作。谢谢