在Office 2016中将范围从Excel复制到Word(在其他版本中未尝试)时,我发现一个奇怪的怪癖作为OLEObject。 VBA在Excel中。这是代码,它在Word文件中找到一个书签,粘贴到表中并重置书签:
docker-compose up --force-recreate
如果工作表Set wordRange = wordDoc.bookmarks("Table").Range
wsService.Range("A1:B15").Copy
wordRange.PasteSpecial Link:=False, DataType:=0, Placement:=0
wordDoc.bookmarks.Add "Table", wordRange
在Excel中处于活动状态,则此方法有效。如果不是,则复制活动工作表上的wsService
。我尝试了其他数据类型(例如位图,图元文件,形状),它们都可以正常工作。这是错误吗?
答案 0 :(得分:0)
您的描述表明您对wsService所做的所有操作都将其指向ActiveSheet。例如:
set wsService = ActiveSheet
而不是说应该使用哪个特定的工作表:
set wsService = ThisWorkbook.Sheets("Sheet1")
通过这种方式,不需要从工作表中复制任何内容。
答案 1 :(得分:-1)
尝试一下:
Dim wsService as Worksheet, rng as Range, other declarations...
Set wordRange = wordDoc.bookmarks("Table").Range
Set wsService = ThisWorkbook.Sheets("sheetname")
Set rng = wsService.Range("A1:B15")
rng.Copy
wordRange.PasteSpecial Link:=False, DataType:=0, Placement:=0
wordDoc.bookmarks.Add "Table", wordRange