05. juli 2007 - 12:49Der er
6 kommentarer og 1 løsning
VBA kode til sletning af linier
Er der nogen der kal hjælpe mig med følgende problem: I en dokumentskabelon vil jeg gerne kunne vælge et defineret Bognærke og slette Bogmærket samt den linie bogmærket står på og X linier fremad? Det skal kunne gøres ved hjælp af VBA kode!
Antagelser: 1. At du med linje mener afsnit 2. At du vil slette 4 afsnit inkl. det afsnit,som bogmærket står i ******************** Public Sub SletLinjer If ActiveDocument.Bookmarks.Exist("Bogmærke") then activeDocument.Bookmarks("Bogmærke").Range.Paragraphs(4).range.delete end if End Sub
Dit forslag ser jo rigtig godt ud men desværre virker det ikke efter hensigten. Word kommer med en Debug box og rapporterer fejl i linien med delete. Jeg har indsat koden således (bogmærket eksisterer):
' Sletter 7 afsnit (linier) If frmProduktblad.txtIV <> "" Then If ActiveDocument.Bookmarks.Exists("bmkStartAMU") Then ActiveDocument.Bookmarks("bmkStartAMU").Range.Paragraphs(7).Range.Delete End If End If
Sorry - det er ikke sådan, når man tror, at man kan gå på vandet... ********* Sub SletLinjer() Dim objRange As Range Dim objEndRange As Range Dim objDeleteRange As Range Dim i As Integer Dim intParagraphs As Integer
intParagraphs = 7
If frmProduktblad.txtIV <> "" Then If ActiveDocument.Bookmarks.Exists("bmkStartAMU") Then Set objRange = ActiveDocument.Bookmarks("bmkStartAMU").Range.Paragraphs(1).Range Set objEndRange = ActiveDocument.Bookmarks("bmkStartAMU").Range.Paragraphs(1).Range
For i = 1 To intParagraphs objEndRange.Collapse wdCollapseEnd objEndRange.EndOf wdParagraph, wdExtend Next i
Set objDeleteRange = ActiveDocument.Range(objRange.Start, objEndRange.End) objDeleteRange.Delete End If End If
Set objRange = Nothing Set objEndRange = Nothing Set objDeleteRange = Nothing
Hej word-hajen Jeg har implementeret din kode i min skabelon men den giver desværre stadig en fejl som jeg ikke kan gennemskue: Run-time error '424': Object requierd og så viser debug rutinen at der er problemer med linien: Set objDeleteRange = ActiveDokument.Range(objRange.Start, obJEndRange.End) Variablen objDeleteRange vises som Empty når jeg peger på den med musen
Jeg vedlægger lige koden som jeg har indtastet den:
' Sletter AMU afsnittet hvis det er et IV kursus Dim objRange As Range Dim obJEndRange As Range Dim objDeleteRang As Range Dim i As Integer Dim intParagraphs As Integer
intParagraphs = 8
If frmProduktblad.btnIV = True Then If ActiveDocument.Bookmarks.Exists("bmkStartAMU") Then Set objRange = ActiveDocument.Bookmarks("bmkStartAMU").Range.Paragraphs(1).Range Set obJEndRange = ActiveDocument.Bookmarks("bmkStartAMU").Range.Paragraphs(1).Range
For i = 1 To intParagraphs obJEndRange.Collapse wdCollapseEnd obJEndRange.EndOf wdParagraph, wdExtend Next i
Set objDeleteRange = ActiveDokument.Range(objRange.Start, obJEndRange.End) objDeleteRange.Delete End If End If
Set objRange = Nothing Set obJEndRange = Nothing Set objDeleteRang = Nothing
Jeg håber meget du kan gennemskue problemet da jeg IKKE er en VBA kode haj
Hej word-hajen Du havde ret - efter at jeg angav variabel navnet korrekt fungerer det bare perfekt! MANGE TAK for hjælpen. Det er rigtig skønt at kunne få hjælp af folk der ved hvad de snakker om. Læg lige et svar så du kan få dine velfortjente points.
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.