Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.word.tables
|
|||
|
|||
![]()
I am using a VB macro in Word 2003 to allow users to add rows to multiple
tables in a protected form while copying the existing form fields in the new row. I used code posted to another site from a Word MVP (thank you Jay Freedman!) as I am completely new to VB. I suddenly started getting an error message when trying to add new rows to any table in the document: "The requested member of the collection does not exist". Is the cause for the error that some of my tables have merged cells? Is there a way to revise the code to allow merged cells (as I can't work around them)? Is there any general revisions to ensure users can avoid the error message? Sub addrow() Dim response As Integer Dim myRow As Long Dim myCount As Long Dim colCount As Long Dim colIndex As Long Dim myNewField As String If Not Selection.Information(wdWithInTable) Then Exit Sub End If response = MsgBox("Add new row?", vbQuestion + vbYesNo) If response = vbYes Then ActiveDocument.Unprotect colCount = Selection.Tables(1).Columns.Count Selection.InsertRowsBelow 1 Selection.Collapse (wdCollapseStart) myRow = Selection.Information(wdStartOfRangeRowNumber) For colIndex = 1 To colCount - 1 Selection.FormFields.Add Range:=Selection.Range, _ Type:=wdFieldFormTextInput myCount = ActiveDocument.Range.FormFields.Count With ActiveDocument.FormFields(myCount) ..Name = "text" & colIndex & "row" & myRow ..Enabled = True End With Selection.MoveRight Unit:=wdCell Next colIndex Selection.FormFields.Add Range:=Selection.Range, _ Type:=wdFieldFormTextInput myCount = ActiveDocument.Range.FormFields.Count With ActiveDocument.FormFields(myCount) ..Name = "text" & colCount & "row" & myRow ..Enabled = True ..ExitMacro = "addrow" End With myNewField = "text1row" & myRow ActiveDocument.Protect NoReset:=True, _ Type:=wdAllowOnlyFormFields ActiveDocument.Range.FormFields(myNewField).Select End If End Sub |
#2
![]()
Posted to microsoft.public.word.tables
|
|||
|
|||
![]()
When you get the error, Click Debug and show us which line it is on.
|
#3
![]()
Posted to microsoft.public.word.tables
|
|||
|
|||
![]()
Ok, I think it has issues with Line 8 (the blank space between 'Dim
myNewField As String' and 'If Not Selection.Information(wdWithInTable) Then'). I did also get a runtime error, #5941, with the same error message once. As I am very new to VB any help with how best to debug would be appreciated. (I just ran the script from the VB editor.) The error only occurs when you select 'Yes' to add a new row. If you decline there is no error message. I also found that new row does not retain any of the field settings (i.e. dropdowns) from the previous line, including the 'addrow' macro. It would be best if the fields could be copied exactly into the new row, especially as the user will not expect to have to go back 'up' to expand the table. Thanks! |
#4
![]()
Posted to microsoft.public.word.tables
|
|||
|
|||
![]()
Just a note: The macro is embedded directly into the document as it is the
only one needed. |
#5
![]()
Posted to microsoft.public.word.tables
|
|||
|
|||
![]()
Also, question regarding this macro and the use of document protection: If I
password protect the document (as it will be circulated to many users) will there be any negative affects on the Macro? The protection would be to limit users to only being able to fill in the form fields. |
Reply |
Thread Tools | |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Formal invitation to become member of a publication | Microsoft Word Help | |||
Method or Data Member not found HELP | Microsoft Word Help | |||
Error# 5852 Requested Object Is Not Available | Mailmerge | |||
MVB error- compile error method or data member not found | Microsoft Word Help | |||
Error 5941 - The requested member of the collection does not exsis | Microsoft Word Help |