【发布时间】:2019-02-07 04:34:36
【问题描述】:
在 Office 2016 中(在其他版本中未尝试过)将范围从 Excel 复制到 Word 作为 OLEObject 时,我发现了一个奇怪的问题。 VBA 在 Excel 中。这是代码,它在 Word 文件中找到一个书签,粘贴到表格中并重置书签:
Set wordRange = wordDoc.bookmarks("Table").Range
wsService.Range("A1:B15").Copy
wordRange.PasteSpecial Link:=False, DataType:=0, Placement:=0
wordDoc.bookmarks.Add "Table", wordRange
如果工作表 wsService 在 Excel 中处于活动状态,则此方法有效。如果不是Range("A1:B15"),则将复制活动工作表上的内容。我尝试过其他数据类型(例如位图、元文件、形状),它们都可以正常工作。这是一个错误吗?
【问题讨论】:
-
你是如何设置对象
wsService的? -
它是属性中的工作表对象名称。我会尝试设置一个变量并报告回来。
-
@Nathan_Sav 不,同样的问题
-
你试过
worksheets("sheetname").range("a1:b15")吗? -
您可以说这是一个错误,但您可以通过一些技巧来解决,例如 Application.ScreenUpdating = False & wsService.visible = false 在运行程序时以及在结束之前再次激活您的工作表, Application.ScreenUpdating = true 和 wsService.visible = true。我希望它有所帮助。