excel - 通过 VBA 从剪贴板粘贴到 Word 标题的图像既不列为 InlineShape 也不列为 Shape

标签 excel vba ms-word shapes

我正在尝试将图像(已经是 Excel 中的图像,而不是随后转换为图像的表格)从 Excel 工作表复制到 Word 标题。之后我想操纵它,例如比例,对齐等)。粘贴效果很好,但之后我无法选择它,因为它既没有列为 InlineShape (然后我可以转换为形状)也没有列为 Shape - 那么它是什么以及如何选择它?从我在这里和其他各种平台上阅读的内容来看,这个 应该 工作,但它没有。我是否忘记处理有关标题的事情?

我现在尝试了各种编码方法,但没有一个有效。例子:

1)

ThisWorkbook.Worksheets("Backup - Do not change").Shapes("companyLogo").Copy
wdDoc.Sections(1).Headers(2).Range.Paste 'this should result in an InlineShape
Debug.Print wdDoc.InlineShapes.Count '= 0
Debug.Print wdDoc.Shapes.Count '= 0

2)
ThisWorkbook.Worksheets("Backup - Do not change").Shapes("companyLogo").Copy
wdDoc.Sections(1).Headers(2).Range.PasteSpecial DataType:=8 '=wdPasteShape
Debug.Print wdDoc.InlineShapes.Count '= 0
Debug.Print wdDoc.Shapes.Count '= 0

3)
Dim wdRng As Object
Set wdRng = wdDoc.Sections(1).Headers(2).Range
wdRng.Paste
Debug.Print wdDoc.InlineShapes.Count '= 0
Debug.Print wdDoc.Shapes.Count '= 0

我希望你能帮助我解决这个问题,这让我很生气。干杯!

最佳答案

您的代码的基本问题是您将其粘贴到标题中,然后尝试引用它而不考虑其位置。尝试以下方式:

ThisWorkbook.Worksheets("Backup - Do not change").Shapes("companyLogo").Copy
With wdDoc.Sections(1).Headers(2).Range
  .Paste
  With .InlineShapes(1)
    .LockAspectRatio = True
    .Width = wdApp.InchesToPoints(2)
  End With
End With

关于excel - 通过 VBA 从剪贴板粘贴到 Word 标题的图像既不列为 InlineShape 也不列为 Shape,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62064676/

相关文章:

excel - 在 VBA 代码中压缩多个 OR 条件

Python docx 库文本对齐

vba - Excel VBA范围变量连接

excel - 将复制的范围(从关闭的工作簿)插入到打开的工作簿的命名范围中

EXCEL如何编写步进函数

excel - 复制/粘贴到多个单元格后类型不匹配?

vba - 宏到字段代码

java - Android + POI Excel + 在现有文件中添加数据

Excel 2016 用多个空格分割字符串

excel - 为什么我的循环在下面的代码中跳过了一个单元格?