通过VBA从剪贴板粘贴到Word标题的图像既不列为内联形状,也不列为形状



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

最新更新