07. marts 2008 - 21:36Der er
37 kommentarer og 1 løsning
Flytte hyperlink fra ark til ark?
Jeg har tidligere spurgt om dette, men svaret der kom fik jeg ikke til at virke, og jeg er ved at være godt desperat nu, da jeg har 35 ark/sider med 10-15 hyperlink hver som jeg skal have kopieret. Jeg har lavet en side som er perfekt, den skal jeg så have kopieret ud til 35 medarbejdere, men kan det passe at jeg skal sidde og rette hver enkelt hyperlink?
Hyperlinkene skal blive på samme ark/side, dvs. at f.eks. celle F21 et link som hopper over til AG10 på samme ark, men når jeg kopierer det til ark 2, og trykker på hyperlinket springer den over til AG10 på ark 1.
Dit hyperlink henviser stadig til den celle, som du har oprettet hyperlinket med. Nedenstående kode kopierer det aktuelle ark, løber alle hyperlinks på det nye ark igennem og retter det til "lokale" celler, hvis hyperlinket ellers henviser til det ark, hvor det er kopieret fra.
********************* Public Sub CopySheetAndEditHyperlinks() Dim objWS As Worksheet Dim objNewWS As Worksheet Dim objHyper As Hyperlink Dim strHyper As String Dim strText As String Dim strAddress As String
Set objWS = ActiveSheet objWS.Copy , objWS Set objNewWS = ActiveSheet
For Each objHyper In objNewWS.Hyperlinks strHyper = objHyper.SubAddress strText = objHyper.TextToDisplay strAddress = objHyper.Range.Address
Set sh1 = Sheets("Ark1") ' ret Ark1 til aktuel arknavn, hvor hyperlink er
For Each c In sh1.Hyperlinks Adr = c.Parent.Address sAdr = c.SubAddress tekst = c.TextToDisplay For Each sh In ThisWorkbook.Sheets If sh.Name <> sh1.Name Then sh.Activate Range(Adr).Select x = Left(sAdr, InStr(sAdr, "!")) sAdr = Replace(sAdr, x, "!") ActiveSheet.Hyperlinks.Add Anchor:=sh.Range(Adr), Address:="", SubAddress:=sh.Name & sAdr, TextToDisplay:=tekst End If Next Next
Normalt blander jeg mig ikke i spørgsmål en anden expert har budt på men hvis denne løsning ikke løser opgaven som jeg forstår den så hænder det jeg kommer med mit bud Men jeg kan naturligvis også have misforstået spørgsmålet, og så er der jo ingen skade set som jeg ser det.
Jeg er ikke VBA ekspert, men jeg har afprøvet begge løsninger, word-hajens kan jeg godt se hvordan den virker, og når jeg kører den kopierer den også arket, f.eks. ark "Charlotte" og danner derefter et ark "Charlotte(2)" men når jeg trykker på cellen med hyplink f.eks. TJEKLISTE (som skulle hoppe fra celle O6 til A70) så hopper den tilbage til ark "Charlotte" celle A70, og altså ikke til "Charlotte(2)" celle A70
Excelents kode kan jeg ikke få til at virke, det kan meget sandsyneligt skyldes noget jeg laver forkert, men den skriver en masse run-time error 1004 Application-defined or objekt-defined error, og den er ikke glad for linien med "Sub CopyHyper"
Jeg har en forside som er en liste over alle folkene
eks på forside: charlotte "person" christian "person" ewa "person" Hugo "person"
*"person" er et hyperlink som hopper fra forsiden, til arket som tilhører personen(arket har samme navn som personen,charlotte, christian osv.)
Når man så er kommet ind på "personen" så er der en masse oplysninger, hver medarbejder har hver sin side, så derfor er der jo hyperlinks på alle siderne.
Eksempler på hyperlinks: 1. et link der hedder "forside" som hopper fra personens side til forsiden (O4 til forside. 2. et link som hedder "tjekliste" som hopper fra O6 til A70 PÅ SAMME ARK. 3. et link der hedder "Rapport" som hopper fra O8 til AG1 PÅ SAMME ARK.
De øvrige ark hedder navnene, charlotte,christian, ewa, hugo osv.
Problemet er at jeg har lavet arket "charlotte" helt færdigt, udfyldt det med alle informationer. Oprindeligt havde jeg lavet det så hver person havde et ark som deres "forside" og derfra hoppede man til et andet ark hvor man kunne se deres kurser, og man kunne også hoppe til et ark der viste hvordan de var blevet oplært osv. men det tilknyttede 3-4 ark til hver person, og med 35 folk ville det blive ret omfattende. Derfor lavede jeg det sådan at der kun er 1 side pr. mand, men at man så hopper rundt på hvert enkelt ark med hjælp fra hyperlinksene.
Men nu virker "Charlotte" men jeg kan jo ikke kopiere det unden at skulle igennem alle hyperlinksene for hver enkelt :o( Hidtil har jeg bare brugt Ctrl+c og sat dem ind på hvert enkelt person, virkede fint, men ikke med hyperlinksene.
ok prøv om denne dur Linket "Forside" på Arket Charlotte kopieres ikke til øvrige ark men eller kopieres de links som er på Ark Charlotte til alle øvrige medarb.ark Ved ikke om jeg kan få linket Forside med også
Sub xHyper()
Set sh1 = Sheets("Charlotte") Application.ScreenUpdating = False For Each c In sh1.Hyperlinks Adr = c.Parent.Address sAdr = c.SubAddress tekst = c.TextToDisplay For Each sh In ThisWorkbook.Sheets If sh.Name <> sh1.Name And sh.Name <> "Forside" Then sh.Activate Range(Adr).Select x = Left(sAdr, InStr(sAdr, "!")) sAdr = Replace(sAdr, x, "!") If InStr(sAdr, "!") > 0 Then tekst = Replace(tekst, Left(tekst, InStr(tekst, "!")), sh.Name & "!")
If tekst <> "Forside" Then ActiveSheet.Hyperlinks.Add Anchor:=sh.Range(Adr), Address:="", SubAddress:=sh.Name & sAdr, TextToDisplay:=tekst End If End If Next Next sh1.Select Application.ScreenUpdating = True
Som du kan se i min fil så virker koden som den skal så mon ikke vi kan få dit til at virke også Jeg skal jo bare have de rette oplysninger ellers går det galt Så prøv lige at hente min fil igen og lad mig høre om den virker ok
ja hvis hyperlinkceller indgår i flettede celler så kunne jeg godt forestill mig det gav problemer Men har du testet min fil igen og virker den efter hensigten ?
Problemet er også at jeg lige har fundet 15-20 hyperlinks mere på siden, jeg glemte lige at inde i Rapporten var der også nogen, så det blive rimelig omfattende.
Jeg vil lige tænke over hvordan jeg kan lave programmet så det ikke bliver så omfattende, der må være et eller andet smart jeg kan gøre.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.