2016-07-12 2 views
2

Я использовал VBA для создания документа Word, и я добавил в него картинку.
Однако я хотел бы найти изображение точно под последним абзацем вместо фиксированной позиции.
Якорь кажется неисправным сразу после того, как я добавил детали PageSetup в код. Я сделал что-то не так?
Можно ли позиционировать изображение прямо под последним абзацем, если я не могу использовать якорь?Как разместить изображение прямо под последним абзацем в vba?

Public Sub create() 

Dim certpara As Word.Paragraph 
Dim certdoc As Word.Document 
Dim certapp As Word.Application 

Set certapp = New Word.Application 

certapp.Visible = True 

Set certdoc = certapp.Documents.Add 

certdoc.PageSetup.TopMargin = certapp.InchesToPoints(0.59) 
certdoc.PageSetup.BottomMargin = certapp.InchesToPoints(0.39) 
certdoc.PageSetup.LeftMargin = certapp.InchesToPoints(0.79) 
certdoc.PageSetup.RightMargin = certapp.InchesToPoints(0.79) 

Dim i As Integer 
Dim v As Integer 

v = Range("A1").Value 

For i = 1 To v 
    certdoc.Paragraphs.Add 
    Set certpara = certdoc.Paragraphs.Last 
    certpara.Range.Text = "aaa" 
Next i 

Dim location As String 
location = "D:\C3000.jpg" 

certdoc.Shapes.AddPicture Filename:=location, _ 
LinkToFile:=False, _ 
SaveWithDocument:=True, _ 
Left:=300, _ 
Top:=230, _ 
Anchor:=certpara.Range, _ 
width:=130, _ 
Height:=91 

certdoc.Shapes(1).WrapFormat.Type = wdWrapBehind 

End Sub 

ответ

0

Вы всегда можете добавить закладку на позиции непосредственно после того, как последний абзац вставлен и вставить в таком положении (вместо якоря), или вставить в переопределенном диапазоне. Поскольку второй меньше участвует:

После того, как вы определили ваше местоположение изображения:

certpara.Collapse wdCollapseStart 
'I had some trouble understanding your question so use the next line at your discretion 
certpara.MoveEnd Unit:=wdCharacter, Count:=-1 
certpara.Select 

ActiveDocument.Shapes.AddPicture FileName:=location, _ 
LinkToFile:=False, _ 
SaveWithDocument:=True, _ 
Anchor:=Selection.Range 
Смежные вопросы