22. december 2004 - 10:10Der er
7 kommentarer og 1 løsning
relativ kædesti
jeg skal have linket til en celle i et andet dokument, men stien skal være relativ. Problemet ligger i, at filen, der skal linkes til, ligger et niveau oppe.. mit mappehieraki ser således ud:
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du kan få stien på det aktive xls-dokument fra VBA. Ud fra den kan du sagtens finde stien til niveauet over. Altså:
I CHP_preferred.xls kan du ved følgende kode få de stier du ønsker:
Dim strCurrentFolder As String Dim strMotherFolder As String strCurrentFolder = ActiveWorkbook.Path strMotherFolder = Mid(strCurrentFolder, 1, InStrRev(strCurrentFolder, "\") - 1) MsgBox "Stien til denne xls-fil er : " & strCurrentFolder MsgBox "Stien til niveauet over denne xls-fil er : " & strMotherFolder
jeg er nået til at have lavet noget, der ikke virker..
jeg har lavet denne funktion Function link(r As String) link.FormulaR1C1 = "='" & Mid(ActiveWorkbook.Path, 1, InStrRev(ActiveWorkbook.Path, "\")) & r End Function
og jeg accesser den med denne linje =link("[globals_status.xls]Sheet1'!R2C1")
Jeg tror ikke det kan klares med en funktion på arket. Denne sub ændrer alle links i arket . Du kan evt. kalde den fra Sub Auto_Open eller workbook_open
Sub DynamicLinks() Dim aLinks As Variant Dim stNewPath As String Dim i As Long stNewPath = GetPath(ThisWorkbook.Path) aLinks = ActiveWorkbook.LinkSources() If Not IsEmpty(aLinks) Then For i = 1 To UBound(aLinks) If Not GetPath(aLinks(i)) = stNewPath Then ActiveWorkbook.ChangeLink Name:=aLinks(i), _ NewName:=stNewPath & "\" & GetFileName(aLinks(i)), Type:=xlExcelLinks End If Next i End If End Sub
Function GetPath(vFolder) As String GetPath = Mid(vFolder, 1, InStrRev(vFolder, "\") - 1) End Function
Function GetFileName(vFolder) As String Dim vTemp As Variant vTemp = Split(vFolder, "\") GetFileName = vTemp(UBound(vTemp)) End Function
1^(½) -> Den vil selvfølgelig fejle hvis der ikke er et overliggende bibliotek. Jeg har ikke bygget nogen som helst fejlfangere på.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.