帮我想想办法:我在缓冲区里复制了Excel中的单元格,就是不能在Word中做一个特殊的粘贴。这是一段代码:
xl.Run("PERSONAL.xlsb!Macros1") #запуск макроса в открытом Excel
xl.ActiveCell.CurrentRegion.Select() #выбираем все ячейки
xl.Selection.Copy() #копируем в буфер
word = win32com.client.Dispatch("Word.Application")
word.Documents.Open('12345.doc') #запускаем нужный документ
word.Selection.Find.Text = 'some_word' #ищем слово, которое надо заменить
word.Selection.Find.Execute()
word.Selection.PasteSpecial() #Тут заменяем что искали на содержимое буфера со специальной вставкой
问题实际上在最后一行,我不知道要传递什么参数才能以必要的格式插入它(在我的例子中,你需要 PasteAsImage)。在英语论坛上有人提出了一个类似的问题,用于粘贴到 Excel 中,有人可以通过编写 xl.Selection.PasteSpecial(Paste=constants.xlPasteValues)来解决它,但它对我的 Word 不起作用。我认为应该在此处link 1和 here link 2寻找提示,但仍然没有任何反应。如果我从第二个链接传递参数,例如:word.Selection.PasteSpecial(DataType=4),它仍然以原始格式插入。
最后,我决定采取稍微不同的方法。我没有使用“粘贴为图片”,而是使用了“复制为图片”,然后使用粘贴方法粘贴了所有内容。输出如下:
是的,答案应该在第二个链接中找到。所有选项都清楚地拼写在那里,并且没有像 PasteAsImage 那样的东西。顺便说一下,Excel 也有(链接)。
有几种选择。您可以链接到所需的范围而不是复制它。可以复制到 Excel 电子表格对象。其余选项更难。
UPD:宏记录器认为它应该是这样的:
但这是在 Office 2003 中。手边没有其他人。