2017-02-14 1 views
-1

Um zu verdeutlichen, arbeitet meine Firma mit Microsoft Word 2016-Anwendungen, die in Fill-In Form Felder zusätzlich zu Kontrollkästchen abgedeckt sind. Die Formularfelder können Zahlen, Daten haben und nur Regular Text wie folgt:Wie kann ich alle Eingabefelder ausfüllen, Kontrollkästchen überspringen und sie alle in Regulärer Text ändern?

Test Form Field Options

Wir haben bereits ein Makro den Hilfetext in jedem Formfield, aufgrund einer neuen SOP, während des aktiven Dokuments zu beseitigen

Sub FillInHelpRemoval() 
Dim fld As FormField 
    For Each fld In ActiveDocument.FormFields 
      fld.StatusText = "" 
    Next 
End Sub 

das Problem, das ich habe versucht, herauszufinden, wie man das Makro über einen Weg, um durch jedes Formularfeld, das Überspringen der Kontrollkästchen an, jeder von ihnen ändert sich die haben: wie unten gezeigt Attribute unter ...

TextInput.EditType Type:=wdRegularText, Default:="", Format:="" 

... egal ob der TextInput.EditType Typ wdNumberText oder wdDateText ist.

Dies würde helfen, viele weitere Klicks und Schritte zu eliminieren, die für die Bearbeitung unserer Arbeit erforderlich sind.

Antwort

0

Es scheint, dass mein Vorgesetzter einen Code entwickelt hat, der für unsere Bedürfnisse funktioniert, jedoch ist der gesamte enthaltene Code möglicherweise für die Ausführung des Makros nicht notwendig, aber er hat Angst, etwas zu entfernen. LOL!

Aber ich werde es hier für diejenigen, die in Zukunft ähnliche VBA-Auflösungen suchen, oder sogar diejenigen, die es klären und das Codierungskrempel reduzieren können.

Sub FillInHelpRemoval() 

Dim objFld As FormField 
Dim intCount, intLoop As Integer 
Dim intNum, intText, intDate, intCheck As Integer 
Dim intLen As Integer 
Dim intLoop2 As Integer 
Dim lngStr As Long 


For Each objFld In ActiveDocument.FormFields 
    intCount = intCount + 1 
Next 

If ActiveDocument.ProtectionType <> wdNoProtection Then ActiveDocument.Unprotect 

On Error Resume Next 
For intLoop = 1 To intCount 
    Select Case True 
    Case ActiveDocument.FormFields(intLoop).Type = 70 'text 
     ActiveDocument.FormFields(intLoop).Select 

     If ActiveDocument.FormFields(intLoop).TextInput.Type = wdDateText Then 
      ActiveDocument.FormFields(intLoop).Select 
      With Selection.FormFields(1) 

       With .TextInput 
        .EditType Type:=wdRegularText, Default:="", Format:="" 
       End With 

      End With 

      intDate = intDate + 1 
     Else 
      If ActiveDocument.FormFields(intLoop).TextInput.Type = wdNumberText Then 
       ActiveDocument.FormFields(intLoop).Select 
       With Selection.FormFields(1) 

        With .TextInput 
         .EditType Type:=wdRegularText, Default:="", Format:="" 
        End With 
                                                              End With 
       intNum = intNum + 1 

      End If 
     End If 

    Case Else 
     Debug.Print ActiveDocument.FormFields(intLoop).Type 
    End Select 
Next intLoop 

'Call FillInHelpRemoval 

For Each objFld In ActiveDocument.FormFields 
    objFld.Select 
    With Selection.FormFields(1) 
     .StatusText = "" 
    End With 

    Next 
End Sub 
Verwandte Themen