01. oktober 2017 - 17:03Der er
15 kommentarer og 1 løsning
Slette kæder
Hej alle
Jeg har det problem, at når mit excel åbner, får jeg en fejl med en fil som er kædet. Denne fil bliver slettet så snart den kommer over i det rigtige excel ark, derefter skulle den også gerne slette denne kæde i VBA. Jeg ville gerne undgå denne fejlmeddelelse.
Jeg har forsøgt lidt forskelligt fra nettet, men det giver bagslag - desværre.
Public Sub DC() For i = 1 To ActiveWorkbook.Connections.Count If ActiveWorkbook.Connections.Count = 0 Then Exit Sub ActiveWorkbook.Connections.Item(i).Delete i = i - 1 Next i End Sub
Giver denne fejl: Compile error: Variable not defined
Det er "Public Sub DC()" som får fejlen.
Er der nogen, som kan hjælpe med at få slettet alle kæder i excel ved opstart.
Jeg benytter mig naturligvis med: Private Sub Workbook_Open() DC End Sub
Sub BreakLinks() On Error GoTo MyEnd Set wb = Application.ActiveWorkbook If Not IsEmpty(wb.LinkSources(xlExcelLinks)) Then For Each link In wb.LinkSources(xlExcelLinks) wb.BreakLink link, xlLinkTypeExcelLinks Next link End If On Error GoTo 0 MyEnd: End Sub
Der får jeg samme fejl, bare ved For Each link In wb.LinkSources(xlExcelLinks), "link" efter Each,
Hvad hvis du går op i "Data" og vælger "Rediger kæder" og så vælger at data link skal pege på den fil du har åben! Derved bryder du linket, og får læst data fra den fil som du vælger at læse data fra (den åbne fil).
Det er fordi, jeg vil have excel til at opdatere fra en anden fil hvis den eksistere. Da denne skal bruges som opdatering.
Al med opdatering osv. virker, men den bliver automatisk kædet sammen. Det ønsker jeg at fjerne igen, efter den har udført sin opgave. For når jeg har opdateret mit excel ark, når den åbner og den er færdig bliver opdateringsfilen slettet igen. Starter jeg excel op igen uden den fil, får jeg fejl. Denne fejl vil jeg gerne have væk, selvom jeg godt kan skrive fortsæt. Derfor ville det være fedt, hvis VBA kunne gøre dette automatisk efter den har fjernet filen igen.
Du får fejlene i begge dine makroer, fordi du ikke har erklæret dine variabler.
Prøv, at slette kodelinjen, 'Option Explicit' i toppen af dit kodemodul.
Jeg tror forøvrigt også, at du vil få fejl i den første makro, da man altid skal løbe baglæns, når man sletter...
...din tæller bør i stedet hedde:
For i = ActiveWorkbook.Connections.Count To 1 Step -1
I den samme makro bør du også indsætte: On Error Resume Next ...som den allrførste linje i tilfælde af, at der enten ikke er nogen links, at slette, eller, hvis links er beskyttet mod sletning.
#3 - Har du så prøvet, at gå ind i "data" og under "Rediger kæder", og slå funktionen fra, om at få en meddelelse når Excel starter op. Findes så vidt jeg husker, i en lille knap menu (kan ikke lige se det, da jeg mangler en linked fil med manglende data, for at se specifikt) ;-)
#4 > Public Sub DC() On Error Resume Next For i = ActiveWorkbook.Connections.Count To 1 Step -1 If ActiveWorkbook.Connections.Count = 0 Then Exit Sub ActiveWorkbook.Connections.Item(i).Delete i = i - 1 Next i End Sub
Den fjerner desværre stadig ikke kæden og har også fjernet Option Explicit, uden held.
#5 > Har sat den til, "vis ikke advarslen, og opdater ikke automatiske kæder". Den del driller nok også.
#6 - Der er også muligheden, at slå det fra i indstillinger, og vælg "Avanceret" og så nede under "Generelt" fjern Flueben fra "Spørg om kæder skal opdateres automatisk".
Jeg tror, at alle indlæg er at opfatte som svar - du skal blot markere, hvilket du bedst kunne bruge...
Synes godt om
1 synes godt om dette
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.