Word VBA复制表格ContentControl遇运行时错误'5941'求解决
Word VBA复制内容控件错误解决方法
错误原因
运行时错误'5941'的核心问题是:目标单元格(第44行第4列)中不存在ContentControl,你直接访问ContentControls(1)时,集合里没有对应的成员,自然触发报错。另外Excel VBA的对象赋值逻辑不适用于Word的ContentControl,不能直接把源控件对象赋值给目标位置。
修正后的代码
Sub CopyContentControl() Dim sourceCC As ContentControl Dim targetRange As Range ' 获取源单元格的ContentControl Set sourceCC = ActiveDocument.Tables(1).Cell(2, 4).Range.ContentControls(1) ' 定位目标单元格的有效Range(剔除单元格末尾的隐藏段落标记) Set targetRange = ActiveDocument.Tables(1).Cell(44, 4).Range targetRange.End = targetRange.End - 1 ' 复制并粘贴内容控件到目标位置 sourceCC.Copy targetRange.Paste End Sub
额外说明
- 如果目标单元格原本已有ContentControl,需要先删除再粘贴,否则会触发重复控件错误,可添加如下判断:
If targetRange.ContentControls.Count > 0 Then targetRange.ContentControls(1).Delete End If - 调整
targetRange.End = targetRange.End - 1是为了避免控件被粘贴到单元格外,Word表格单元格的Range默认包含末尾的隐藏段落标记,直接粘贴会导致控件超出单元格范围。
内容的提问来源于stack exchange,提问作者Trent Jones
相关产品推荐
相关产品推荐

