2016-08-17 60 views
-1

我遇到的问题是用户正在从一个内容控件中复制并将其粘贴到另一个内容中。当从这个表格中提取数据时,它会提取这个额外的CC,并因此重复两次。如何删除作为循环主题的对象?

当拉我想看看是否CC有ParentCC然后将其删除的数据,但我不断收到

运行时错误5825:已删除对象。

我可以理解为什么,但我不确定如何绕过它,没有任何我搜索似乎工作。

'With Word document Statement precedes this 
For Each CCtrl In .ContentControls 

    CCtrlText = CCtrl.Range.Text 

    If Not CCtrl.ParentContentControl Is Nothing Then 
     CCtrl.ParentContentControl.Range.Text = CCtrlText 
     CCtrl.Delete 
    End If 
Next 

我该如何删除这个内容重复的内容控件,并保留输入信息?

+0

尝试这样的事情对于I = 0至.contentcontrols.count,设置CCTrl = .contentcontrols(I) –

回答

0

因此,一些插科打诨,寻找到本地变量的属性如何改变为通过代码加强我发现,行之后:

CCtrl.ParentContentControl.Range.Text = CCtrlText 

的影响是更换内容控制(CC)在它的ParentCC范围属性与输入文本,因此删除重复的CC。

CCtrl.Delete试图删除一个已经被删除的对象,并且发出了一个错误。

0

我认为用foreach循环你不能改变列表/数组的内容而不影响循环的功能。如果改为使用索引,它应该让你改变了收集,因为你没有影响循环(数数):

Dim i As Integer 
Dim c As ContentControl 

For i = 1 To d.ContentControls.Count 
    Set c = d.ContentControls(i) 
    c.Delete 
Next i