08. februar 2012 - 11:30Der er
2 kommentarer og 1 løsning
Optimering af makro til at slette formfield (tekstfelt i formular)
Hej
Jeg har følgende kode, som sletter et tomt tekstfelt i formular:
Sub SletTomtAdressefelt()
Dim f As FormField For Each f In ActiveDocument.FormFields If f.Type = 70 Then If f.Name = "Supplerende_adresse1" _ And (f.TextInput.Default = f.Result Or Trim(f.Result) = "") Then f.Delete End If End If Next End Sub
Jeg kunne dog godt tænke mig at få optimeret koden. Når jeg kører makroen, bladres hele dokumentet igennem (7 sider), og derefter springer cursoren til det næste tekstfelt i dokumentet. Det virker meget forstyrrende.
Egentlig skal makroen kun tjekke om det specifikke tekstfelt i formularen er tomt. Er det tilfældet, slettes tekstfeltet, og cursoren springer videre til næste tekstfelt i dokumentet.
Jeg har også et supplerende spørgsmål. Jeg kan nogenlunde regne mig frem til de forskellige koder i makroen, lige bortset fra denne: If f.Type = 70 Then Hvad betyder det???
'f.Type = 70' betyder at feltet er et FormText felt; der ku også ha stået 'wdFieldFormTextInput' i stedet for '70'.
Er det noget a la dette du tænker på:
Sub SletTomtAdressefelt() Dim f As FormField Set f = ActiveDocument.FormFields("Supplerende_adresse1") If (f.TextInput.Default = f.Result Or Trim(f.Result) = "") And f.Type = wdFieldFormTextInput Then f.Delete End If End Sub
Det er lige nøjagtigt det, som jeg søgte. Det virker lige efter hensigten.
Findes der en liste over de forskellige makrokoder, som man kan finde på nettet? For en makro-analfabet som jeg, er det meget svært at gennemskue, hvad de enkelte koder kan.
Jeg siger mange tak for hjælpen. Sender du et svar, så du kan få dine point.
Ved ikke helt hvad du mener med 'makrokoder', men hjælpen i VBE er rimelig omfattende. Og ellers er Google our friend.. :-)
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.