2010-12-02 4 views
0

Ich habe online einen VBA-Code gefunden, der eine interne (gemeinsam genutzte) PDF-Dokumentseite in IE öffnet (z. B. auf Seite 8 der PDF-Datei). Ich möchte Text in der Zelle anzeigen, auf den ein Benutzer klicken kann (z. B. "Klicken Sie hier, um anzuzeigen").Textlink anzeigen, um eine bestimmte PDF-Seite aus Excel zu öffnen

Problem: Die Zelle zeigt zur Zeit '0' an und ich muss zur Funktionsleiste gehen und [Enter] drücken, um auszuführen.

Excel Version: 2003

Funktionsaufruf:

=GoToPDFpage("S:\...x_2011.pdf",8) 

VBA-Code:

Function GoToPDFpage(Fname As String, pg As Integer) 
Set IE = CreateObject("InternetExplorer.Application") 
With IE 
.Navigate Fname & "#page=" & pg 
.Visible = True 
End With 
End Function 

: EDIT:

Ich konnte Text anzeigen, aber es ist immer noch kein Link wie ich es wollte.

="Click to view" & GoToPDFpage("S:\...x_2011.pdf",8) 

Vielen Dank für Ihre Hilfe.

+0

Hallo Fiona, könnte es ein einfacher Weg, um Ihre Bedürfnisse zu lösen. Ist es möglich, dass Sie Ihre Dateinamen und Seitennummern in separaten Spalten für jede Zeile haben? Die Idee ist, eine Schaltfläche "Klicken Sie hier, um anzuzeigen" und in der Spalte daneben den Dateinamen und in der nächsten Spalte die Seitennummer. – CaBieberach

Antwort

0

Versuchen Sie Menü-> Daten-> Datenvalidierung. In der zweiten Registerkarte können Sie Ihre Nachricht schreiben.

+0

Vielen Dank für Ihre Eingabe. Ihr Vorschlag erstellt ein Popup-Feld. Ich habe gesucht, ob ich einen Textlink in die Zelle setzen kann, die "Click to View" sagt. Wenn der Benutzer darauf klickt, führt Excel die obige Funktion aus und öffnet die PDF-Seite. – Fiona

+0

Ok, ich konnte Text anzeigen, aber es ist kein Link. = "Click to view" & GoToPDFpage ("S: \ ... x_2011.pdf", 8) Möchten Sie in der Lage sein, auf diesen Text zu klicken, um die GoToPDFpage-Funktion auszulösen. Vielen Dank. – Fiona

0

Wenn Sie nicht über eine hochkomplexe Arbeitsmappe/Arbeitsblatt Sie folgende versuchen könnte:

Drehen Sie den „Click to view“ Zelle in einen Hyperlink mit folgenden Eigenschaften.

  • Machen Sie es sich Punkt selbst
  • Der Text in der Zelle muss die Zeichenfolge Seite = und die Nummer, die Sie, was der pdf zu öffnen in. Eg .: Seite = 8 immer

gehen Sie dann zum workseet Modul und fügen Sie den folgenden Code ein:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) 

    If Left(ActiveCell.Value, 4) = "Page" Then 

     GoToPDFpage Range("A1").Value, Mid(ActiveCell.Value, 6) 
     'This code asumes that the file address is writen in the cell A1 

    End If 
    ' 
End Sub 
' 

Der oben beschriebene Code wird jedes Mal ausgelöst, wenn Sie einen Hyperlink im Arbeitsblatt ausführen.
Da der Hyperlink immer auf sich selbst zeigt, hat der "Activecell.Value" immer die Seitennummer, die Sie öffnen möchten.

Ich nehme an, dass Sie die Dateiadresse in die Zelle A1 setzen können. Sie können diesen Teil so ändern, dass er auf eine beliebige andere Zelle zeigt. (einschließlich: Die Zelle rechts neben dem aktuellen Hyperlink usw.).

Dies ist möglicherweise nicht die beste Option, aber wenn Sie nur eine schnelle Funktion in ein paar Zellen benötigen, könnte es genug sein.

Hoffe es hilft!


EDIT: Um jeden HLINK Referenz auf sich selbst zu machen, können Sie alle Zellen auszuwählen, in dem Sie die Links und dann diese Prozedur auszuführen:

Sub RefHLink() 
    Dim xCell As Range 

    For Each xCell In Selection 

     ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:="", SubAddress:= _ 
     xCell.Address, ScreenTip:="Click Here", TextToDisplay:="Page=" 
    Next xCell 

End Sub 
+0

Danke. Ich werde es versuchen. Ich habe tatsächlich eine Spalte von <60 Zeilen, die jeweils einen "Hyperlink" zu verschiedenen PDF-Seiten benötigen. – Fiona

+0

Dann können Sie den Pfad der PDF-Datei rechts neben jeder Zelle setzen und dann diese Zeile ändern: "Bereich (" A1 "). Wert" mit der folgenden Zeile: "Activecell.Offset (0,1) .Value". – CaBieberach

+0

Entschuldigung, endlich hatte ich Zeit, einen Blick darauf zu werfen. Ich versuchte das: = HYPERLINK (GoToPDFpage ("S: HP \ HP Analyst \ Kori \ EOC \ 2011 \ kpif_20d_Rx_POP3_2011.pdf", 8), "Klicken Sie, um EOC anzuzeigen") ... scheint zu funktionieren, außer es öffnet die Datei zweimal. Ich habe den oben vorgeschlagenen Code nicht eingefügt - nur meinen ursprünglichen Code. Fast dort!! Vielen Dank! – Fiona

0

, wie etwa im Stich gelassen excel ein schreiben Stapeldatei dann läuft es?

* edit Wege zu pdf und AcroRd32.exe

Sub batfile() 
    Dim retVal 
    filePath = "path\pdf.bat" 
    pg = 2 
    Open filePath For Output As #1 
    Print #1, "Start /Max /w " & Chr(34) & "Current E-book" & Chr(34) & " " & Chr(34) & "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" & Chr(34) & " /a " & Chr(34) & "page=" & pg & Chr(34) & " " & Chr(34) & "H:\Documents\RPG\Dragonlance\New folder\Sample File.pdf" & Chr(34) & "" 
    Close #1 
    retVal = Shell(strFilePath) 
End Sub 
Verwandte Themen