Microsoft Office Forums

Go Back   Microsoft Office Forums > >

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #2  
Old 07-31-2020, 11:01 PM
gmayor's Avatar
gmayor gmayor is offline VBA Adding Rows To Table With Content Control Windows 10 VBA Adding Rows To Table With Content Control Office 2016
Expert
 
Join Date: Aug 2014
Posts: 4,144
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

Based on your code example the following will add a row to Table1 in the current document. The macro should go in an ordinary module and not ThisDocument


Code:
Public Sub AddRow()
'The following code conditionally adds a new row, with content controls, to the designated table.
Dim i As Long, j As Long, Prot As Long
Dim oTable As Table
Dim CCtrl As ContentControl
Const Pwd As String = ""    'Insert password (if any) here

    Set oTable = ActiveDocument.Tables(1)

    'Solicit user input
    If MsgBox("Add new row?", vbQuestion + vbYesNo) <> vbYes Then Exit Sub
    With ActiveDocument
        ' Un-protect the document, if applicable
        Prot = .ProtectionType
        If .ProtectionType <> wdNoProtection Then
            Prot = .ProtectionType
            .Unprotect Password:=Pwd
        End If
        With oTable.Rows
            'Insert an empty paragraph after our table, then replace it with a replica of the last row
            With .Last.Range
                .Next.InsertBefore vbCr
                .Next.FormattedText = .FormattedText
            End With
            'Reset all content controls in the new last row
            For Each CCtrl In .Last.Range.ContentControls
                With CCtrl
                    If .Type = wdContentControlCheckBox Then .Checked = False
                    If .Type = wdContentControlRichText Or .Type = wdContentControlText Then .Range.Text = ""
                    If .Type = wdContentControlDropdownList Then .DropdownListEntries(1).Select
                    If .Type = wdContentControlComboBox Then .DropdownListEntries(1).Select
                    If .Type = wdContentControlDate Then .Range.Text = ""
                End With
            Next
        End With
        .Protect Type:=Prot, Password:=Pwd
    End With
    Set oTable = Nothing
    Exit Sub
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
 

Tags
content control, tables and objects, vba



Similar Threads
Thread Thread Starter Forum Replies Last Post
VBA Adding Rows To Table With Content Control Add Rows to table that will include content controls of previous rows bobsagat Word VBA 20 01-27-2020 08:00 AM
Adding Row with Content control using Command Button baes10 Word VBA 0 12-13-2017 11:30 AM
VBA Adding Rows To Table With Content Control Duplicating one or more table rows or an entire table with content controls kevinbradley57 Word VBA 10 08-17-2017 02:13 PM
VBA Adding Rows To Table With Content Control Adding auto text to end of content control field ksigcajun Word VBA 4 10-13-2014 05:37 AM
VBA Adding Rows To Table With Content Control Deleting a table from a content control -- preserving the content control BrainSlugs83 Word Tables 8 11-14-2013 03:06 AM

Other Forums: Access Forums

All times are GMT -7. The time now is 09:10 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft