25. november 2016 - 10:41Der er
1 kommentar og 1 løsning
Makro til at slette formfield eller formfield + det efterfølgende afsnit i Word
Jeg har en makro, som jeg gerne vil have udvidet. Makroen sletter et tekstfelt, hvis der tastes minus (-) i feltet.
Makroen ser sådan ud:
Sub SletKunFeltet()
Dim f As FormField Set f = ActiveDocument.FormFields("SletKunFeltet2") If f.Result = "-" And f.Type = wdFieldFormTextInput Then f.Delete End If End Sub
Jeg kunne godt tænke mig, at tekstfeltet og det efterfølgende afsnit slettes, hvis man taster plus (+) i feltet.
Jeg har en anden kode, som jeg har prøvet at flette ind, men jeg kan ikke få det til at virke. Koden er flg.:
If f.Result = "+" Then 'fjern beskyttelse UnprotectForFormFields ActiveDocument f.Range.Paragraphs(1).Range.Delete 'beskyt igen ProtectForFormFields ActiveDocument End If
Følgende makro gør muligvis det, du vil. Se kommentarerne i koden. Jeg har lavet den, så den virker med både - og +. Men hvis indholdet er i en tabelcelle, så kan afsnittet efter formularfeltet være det forkerte ? afhænger indholdet i cellerne. Så må du forklare mere præcist, hvad der gælder for det efterfølgende afsnit (er det i samme celle som formularfeltet, i en celle under eller andet).
Sub SletFeltOgEvtAfsnitEfter() 'Sletter TextFormField hvis - 'Sletter TextFormField og afsnit efter hvis +
Dim f As FormField Dim rngField As Range
'Ret bogmærkenavn til det rigtige Set f = ActiveDocument.FormFields("Text1")
If f.Type = wdFieldFormTextInput Then If f.Result = "-" Then f.Delete ElseIf f.Result = "+" Then 'Slet først afstnit efter, hvis det findes Set rngField = f.Range If Not rngField.Paragraphs.First.Next Is Nothing Then 'fjern beskyttelse UnprotectForFormFields ActiveDocument rngField.Paragraphs.First.Next.Range.Delete ProtectForFormFields ActiveDocument End If
Hej Lene Den virker perfekt. Mange tak for hjælpen.
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.