【发布时间】:2021-06-06 21:28:09
【问题描述】:
我有一张 Excel 表格 这是生成一个word文档(然后被转换成PDF)
代码循环遍历各行数据,并根据数据在word中创建一个页面 循环的一部分从 Excel 中获取一个图表并将其粘贴到单词页面中。
代码一切正常,它以我想要的方式生成 word 文档。但是图表的复制/粘贴导致我出现间歇性问题。
奇怪的行为是: 1 - 我的代码在完成循环数据之前会突然退出。 2 - 我无法在中断模式下使用 F8 单步执行代码,一旦我到达执行粘贴的代码,代码就会运行所有内容。 3 - 如果我在粘贴后放一个断点,让代码停止并连续按f5,那么我不会让代码突然退出。
(抱歉,解释这么长)
这是我出现问题的代码的 sn-p
IndividualChartSheet.ChartObjects("IndividualCompletionChart").Copy
DoEvents
objRange.PasteSpecial Link:=False, DataType:=wdPasteMetafilePicture, Placement:=wdWrapSquare, DisplayAsIcon:=False
Application.CutCopyMode = False
DoEvents
Set myShape = objDoc.InlineShapes.Item(objDoc.InlineShapes.Count).ConvertToShape
myShape.WrapFormat.Type = wdWrapBehind
myShape.RelativeVerticalPosition = wdRelativeVerticalPositionPage
myShape.Top = InchesToPoints(2)
myShape.Left = InchesToPoints(-0.4)
objRange 是对我的 word 对象中的范围的引用。
我可以让代码运行,方法是在 Application.CutCopyMode = False 上放置一个断点,然后按 F5。但我希望将此工具传递给其他用户,因此我无需修复此问题。
经过一番搜索,我添加了 DoEvents 和 CutCopyMode = False。 我还尝试将粘贴命令移动到单独的函数中。 但这没有用。
【问题讨论】: