View Single Post
 
Old 06-23-2021, 10:27 PM
gmayor's Avatar
gmayor gmayor is offline Windows 10 Office 2019
Expert
 
Join Date: Aug 2014
Posts: 4,142
gmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud of
Default

You code does exactly the same in earlier Word versions?
The following modification will copy the original table to the end of the table each time it is used. Set the value of iRows to the number of rows in Table 2.
As implied by Andrew, you should be thinking about converting the form to use content controls rather than legacy form fields for the future.
https://www.gmayor.com/insert_content_control_addin.htm
has an option to do that, but it won't modify your code to work with the changed fields.



Code:
Private Sub CommandButton1_Click()
Dim oRng As Range
Dim oFld As FormFields
Dim i As Integer, j As Integer
Const iRows As Integer = 2    'The number of rows in table 2

    If ActiveDocument.ProtectionType <> wdNoProtection Then
        ActiveDocument.Unprotect
    End If
    With ActiveDocument
        Set oRng = ActiveDocument.Tables(2).Range
        oRng.Collapse wdCollapseEnd
        For i = 1 To iRows
            oRng.FormattedText = ActiveDocument.Tables(2).Rows(i).Range.FormattedText
            Set oFld = oRng.FormFields
            For j = 1 To oRng.Fields.Count
                If oFld(j).Type = wdFieldFormDropDown Then
                    oFld(j).Result = oFld(j).DropDown.ListEntries(1).Name
                Else
                    oFld(j).Result = ""
                End If
            Next j
            oRng.Collapse wdCollapseEnd
        Next i
    End With
    ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019)
Visit my web site for more programming tips and ready made processes www.gmayor.com
Reply With Quote