我有一个由Excel构建并在Word中输出的报告,我还有一张名为"图片7"的图片。我的问题是,一旦将这个粘贴到excel的单词中,无论如何都要将图片居中对齐吗?
将图片作为一系列单元格的一部分进行复制。所以我需要在单词中引用图片。
它以细胞范围为中心,但在单词文档
中并不完全出现编辑:目前我正在尝试这个
For Each shp In oDoc.Shapes
If Left(shp.Name, 7) = "RN Logo" Then
shp.Left = wdShapeCenter
End If
Next
但这只是将图片放在左上方,我认为由于它粘贴在桌子上,我可能需要在它上面做一个绝对的位置。
编辑2:我找到了一个解决方法,但它只是一个大的If / Else和绝对定位,下面的代码段
Sub Update_RN_Logo_Location()
For Each shp In oDoc.Shapes
If Left(shp.Name, 7) = "RN Logo" Then
If Right(shp.Name, 1) = 1 Then
shp.Left = oWord.CentimetersToPoints(2.4)
Else
shp.Left = oWord.CentimetersToPoints(0.75)
End If
ElseIf Left(shp.Name, 4) = "UKAS" Then
If Right(shp.Name, 1) = 1 Then
shp.Left = oWord.CentimetersToPoints(1.25)
ElseIf Right(shp.Name, 1) = 2 Then
shp.Left = oWord.CentimetersToPoints(2.5)
ElseIf Right(shp.Name, 1) = 3 Then
shp.Left = oWord.CentimetersToPoints(0)
ElseIf Right(shp.Name, 1) = 4 Then
shp.Left = oWord.CentimetersToPoints(2.5)
End If
End If
Next
End Sub
包含一些已移除的敏感信息的文档图片
答案 0 :(得分:1)
我相信这里有两个问题。首先,单词中的图形有一个锚点。粘贴图形时,它的锚点放在Excel的单元格创建的表格中。这会导致定位。
其次,我建议使用Shape.RelativeHorizontalPosition
属性,这将允许您的Shape.Left
属性为您提供相对于另一个页面元素的真正中心对齐。
在下面的代码中,我将图形相对于文档的边距进行定位,但还有其他选择:
Word 2007 WdRelativeHorizontalPosition Enumeration
此枚举也适用于Word 2010和2013。
为确保正确放置徽标图形,请在粘贴到徽标和表格之前在文档顶部插入回车(确保此回车没有缩进或样式适用空间格式化):
Selection.HomeKey Unit:=wdStory
Selection.InsertBefore vbCr
然后粘贴到图形和表格中并运行以下代码:
For Each shp In oDoc.Shapes
If Left(shp.Name, 7) = "RN Logo" Then
With shp
.Select
Selection.Cut
Selection.HomeKey Unit:=wdStory
Selection.Paste 'places graphic on carriage return before table
.RelativeHorizontalPosition = wdRelativeHorizontalPositionMargin
.Left = wdShapeCenter
.RelativeVerticalPosition = wdRelativeVerticalPositionMargin
'.Top = measurement of choice
End With
End If
Next
答案 1 :(得分:0)
您是否尝试过将中间对齐默认段落(或添加文本框)并粘贴到图片中?保持图片与其他一切分开。您可能还需要设置文本运行。
这是稍微修改过的录制Word VBA
Sub Macro1()
ActiveDocument.Paragraphs.Alignment = wdAlignParagraphCenter
ActiveDocument.InlineShapes.AddPicture FileName:= _
"C:\Users\user\Desktop\01.jpg", LinkToFile:=False, _
SaveWithDocument:=True
End Sub
答案 2 :(得分:0)
你可以做一个" Control + A"选择所有,然后将所有内容全部放在中心位置:
Sub Testing()
'Select All:
Selection.WholeStory
'Center Align All:
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
End Sub
答案 3 :(得分:0)
我更喜欢从Excel / Word外部插入图片; 您可以将它们准确地放在所需的段落中:
Sub M_snb()
ActiveDocument.Paragraphs(5).Range.InlineShapes.AddPicture("G:\Excel_.bmp").Range.ParagraphFormat.Alignment = 1
End Sub