VBA错误4198“;运行时错误“;用浆糊

VBA错误4198“;运行时错误“;用浆糊,vba,ms-word,Vba,Ms Word,我一直在尝试编写一个word VBA脚本,它使用一个屏幕截图(已复制到剪贴板),并将其粘贴到word文档中进行格式化和保存。这个程序在我工作时的电脑上运行得很好,但当我把它分发给其他人时,它在大约25%的电脑上无法运行。我收到的错误是“4198运行时错误”。我寻找过其他人遇到过的类似问题,但我仍然不知所措。办公室中的所有计算机都运行相同版本的work,即2010标准版 问题在于最后一行代码selection.paste。 在运行脚本之前,我确实确保他们的剪贴板上有一个屏幕截图 非常感谢您的所有意

我一直在尝试编写一个word VBA脚本,它使用一个屏幕截图(已复制到剪贴板),并将其粘贴到word文档中进行格式化和保存。这个程序在我工作时的电脑上运行得很好,但当我把它分发给其他人时,它在大约25%的电脑上无法运行。我收到的错误是“4198运行时错误”。我寻找过其他人遇到过的类似问题,但我仍然不知所措。办公室中的所有计算机都运行相同版本的work,即2010标准版

问题在于最后一行代码selection.paste。 在运行脚本之前,我确实确保他们的剪贴板上有一个屏幕截图

非常感谢您的所有意见

Sub MapMaker()

'set up new document with narrow margins and landscape orientation
With Selection.PageSetup
    .LineNumbering.Active = False
    .Orientation = wdOrientPortrait
    .TopMargin = InchesToPoints(0.5)
    .BottomMargin = InchesToPoints(0.5)
    .LeftMargin = InchesToPoints(0.5)
    .RightMargin = InchesToPoints(0.5)
    .Gutter = InchesToPoints(0)
    .HeaderDistance = InchesToPoints(0.5)
    .FooterDistance = InchesToPoints(0.5)
    .PageWidth = InchesToPoints(8.5)
    .PageHeight = InchesToPoints(11)
    .FirstPageTray = wdPrinterDefaultBin
    .OtherPagesTray = wdPrinterDefaultBin
    .SectionStart = wdSectionNewPage
    .OddAndEvenPagesHeaderFooter = False
    .DifferentFirstPageHeaderFooter = False
    .VerticalAlignment = wdAlignVerticalTop
    .SuppressEndnotes = False
    .MirrorMargins = False
    .TwoPagesOnOne = False
    .BookFoldPrinting = False
    .BookFoldRevPrinting = False
    .BookFoldPrintingSheets = 1
    .GutterPos = wdGutterPosLeft
End With
If Selection.PageSetup.Orientation = wdOrientPortrait Then
    Selection.PageSetup.Orientation = wdOrientLandscape
Else
    Selection.PageSetup.Orientation = wdOrientPortrait
End If
' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

'paste and resize screenshot to full page width
Selection.Paste

4198运行时错误可能与链接关联。如果您的原始word文档中有链接正在进行打印筛选,请尝试将其删除,看看这是否解决了问题。

错误是否会在屏幕上打印出来?尝试更改
选择。将
粘贴到
选择。粘贴特殊xlPasteAll
有一种方法可以从剪贴板获取数据,如果
PasteSpecial
不起作用,taht可能是一个选项。