通过VBA从剪贴板粘贴到Word标头的图像既未列为InlineShape也未列为Shape

问题描述 投票:0回答:1

我正在尝试将图像(已经是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

我希望您能在这个问题上帮助我,这使我发疯。干杯!
excel vba ms-word shapes
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.