19. februar 2009 - 09:38Der er
3 kommentarer og 1 løsning
Makro - opdate og slet link til ekstern dataområde
Hej alle..
Jeg sidder med et lille problem
Jeg har en excel mappe fra excel 2003 som består 5 ark. fra ark 2-5 hentes data via "importer ekstern data" fra en anden excel mappe.
På ark 1 vil jeg så gerne lave 2 knapper knap 1 = opdater alle ark (ark 2-5's data område) knap 2 = slet de eksterne link på ark 2-5
Knap og almen makro kan jeg godt lave, men kun via record mode. VB er ikke min stærke side, og jeg formoder det er den vej rundt min svar findes.
Mappen bruges til tilbudsgivning med link til div. prislister. Når tilbudet er udregnet skal priserne jo bibeholdes og ikke opdateres med evt. opdatering af globalt prisark. Da jeg så mister det aktuelle priser jeg har sendt til kunden.
Sub OpdaterAlle() ActiveWorkbook.RefreshAll End Sub
Public Sub SletQueryTabels() Dim SH As Worksheet, QT As Object For Each SH In ActiveWorkbook.Sheets For Each QT In SH.QueryTables QT.Delete Next Next End Sub
Du kan finde en makro til opdatering af alle links her:
' Macro created 26/10/01 by Doug Robbins to update links in a document ' Dim alink As Field, linktype As Range, linkfile As Range Dim linklocation As Range, i As Integer, j As Integer, linkcode As Range Dim Message, Title, Default, Newfile Dim counter As Integer
counter = 0 For Each alink In ActiveDocument.Fields If alink.Type = wdFieldLink Then
Set linkcode = alink.Code i = InStr(linkcode, Chr(34)) Set linktype = alink.Code linktype.End = linktype.Start + i j = InStr(Mid(linkcode, i + 1), Chr(34)) Set linklocation = alink.Code linklocation.Start = linklocation.Start + i + j - 1 If counter = 0 Then Set linkfile = alink.Code linkfile.End = linkfile.Start + i + j - 1 linkfile.Start = linkfile.Start + i Message = "Enter the modified path and filename following this Format " & linkfile Title = "Update Link" Default = linkfile Newfile = InputBox(Message, Title, Default) End If linkcode.Text = linktype & Newfile & linklocation counter = counter + 1 End If Next alink
og til sletning:
aLinks = ActiveWorkbook.LinkSources(xlExcelLinks) If Not IsEmpty(aLinks) Then For i = 1 To UBound(aLinks) lnam = aLinks(i) ActiveWorkbook.BreakLink Name:=lnam, Type:=xlExcelLinks Next i End If
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.