24. januar 2012 - 11:40Der er
9 kommentarer og 1 løsning
Slette linjer på baggrund af specifik tekst i Tekstfelt i formular
Jeg har et tekstfelt i formular, hvor standardteksten er "Der er ikke søgt om dispensation". Nedenunder er der 7 linjer, som beskriver dispensationsmuligheder.
Mit ønske: Hvis tekstfelt = "Der er ikke søgt om dispensation", så slettes de 7 linjer under tekstfeltet.
Nedenstående kode skulle gøre det, du beskriver. Jeg har ikke inkluderet kode til at fjerne/sætte protection af formularen - regner med, at du styrer det i din eksisterende kode
Dim oField As FormField Dim oDoc As Document Dim oRange As Range
Set oDoc = ActiveDocument For Each oField In oDoc.Range.FormFields If oField.Result = "Der er ikke søgt om dispensation" Then Set oRange = oField.Range.Paragraphs(1).Range 'Extend range to include 6 next paragraphs If oRange.MoveEnd(UNIT:=wdParagraph, Count:=6) <> 0 Then oRange.Delete Else 'MoveEnd returns 0 if less than 6 paragraphs are found after paragraph with field 'Insert code here if something is going to happen in case less than 6 paragraphs were found End If End If Next oField
Jeg kan desværre ikke få det til at virke. Jeg har placeret din kode i et module. Når jeg klikker på "beskyt formular" og og skal til at skifte mellem de forskellige tekstfelter, kommer fejlmeddelelsen Compile error: Invalid outside procedure.
Koden er skrevet som en "løsrevet" til at sætte ind i en eksisterende makro. Hvis du ikke har sat koden ind i en anden makro, skal du tilføje "Sub NAVNPÅMAKRO()" for og "End Sub" efter koden - som i alle andre makroer.
Jeg ved ikke om det er muligt at finjustere makroen. Når makroen kører, bliver hele dokumentet "bladret igennem" (7 sider), og så stiller cursoren sig til sidst til det næste tekstfelt i dokumentet. Det virker dog lidt forvirrende, og man mister lidt overblikket.
Hvis dette også kan løses, er det som en Toyota-reklame - 103%. Og ellers så må du gerne sende et svar for veludført opgave.
Velbekomme. Da "min" kode ikke ændrer på, hvad der er markeret i dokumentet, burde den ikke bevirke, at der "bladres". Har du selv tilføjet kode, som bruger Selection? Det bevirker, at markeingen skifter i dokumentet. Hvis man bruger Range i stedet for (hvilket jeg har gjort), sker det ikke. Men det med at bruge Range kræver lidt øvelse ...
Jeg kan ikke umiddelbart se, at der er brugt Selection i dette dokument, men da det er en kopi af en skabelon, kan der muligvis ligge noget kode, som jeg ikke kender til.
Du må gerne sende et svar, så du kan få dine points.
OK. Uden at have set din kode kan jeg desværre ikke fortælle dig, hvad det så er i din kode, der er årsagen (det behøver ikke at være "Selection" - kan også f.eks. bare være ".Select".
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.