2016-08-17 2 views
-1

問題は、ユーザーが1つのコンテンツコントロールからコピーして別のコンテンツコントロールに誤って貼り付けていることです。このフォームからデータを抽出すると、その余分なCCが取り出され、その値が2回以上取り出されます。オブジェクトが削除されました: ループの対象となるオブジェクトを削除するにはどうすればよいですか?

私は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 

このコンテンツコントロールを他のコンテンツと重複して削除し、入力情報を保持するにはどうすればよいですか?

CCtrl.ParentContentControl.Range.Text = CCtrlText 

効果でのITにコンテンツコントロール(CC)を交換したいくつかのいじりと私はラインがあることを発見したコードを通じて段階として、ローカル変数のプロパティがどのように変化するかを検討して後にそう

+0

はセット、.contentcontrols.countにI = 0のため、このような何かを試してみてくださいCCTrl = .contentcontrols(I) –

答えて

0

ParentCC rangeプロパティは入力テキストと重複した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 
関連する問題