我在两个提到的应用程序中编写了代码。 Word中的此代码将所有.emf文件与指示的标题一起放入单词:
Sub LoopEMF()
Dim sPic As String
Dim sPath As String
Dim MyText2 As String
MyText2 = "Figure X - Effects of indicated compounds on specified assays."
sPath = ActiveDocument.Path & "\"
sPic = Dir(sPath & "*.emf")
Do While sPic <> ""
Selection.TypeText (MyText2)
Selection.InlineShapes.AddPicture _
FileName:=sPath & sPic, _
LinkToFile:=False, SaveWithDocument:=True
Selection.TypeParagraph
Selection.TypeParagraph
sPic = Dir
Loop
End Sub
第二组代码复制Excel中的一组单元格(它们编码一个基于偏移更新值的小表)并将复制的信息粘贴到Word中:
Sub Insert_Table2()
Dim WdObj As Object, fname As String
fname = "Tester"
Set WdObj = CreateObject("Word.Application")
WdObj.Visible = False
WdObj.Documents.Add
For loop_ctr = 1 To 2
ActiveSheet.Range("I2").Value = loop_ctr
Range("J1:M5").Select
Selection.Copy 'Your Copy Range
WdObj.Selection.PasteSpecial Link:=False, _
DataType:=wdPasteText, Placement:= _
wdInLine, DisplayAsIcon:=False
Application.CutCopyMode = False
Next loop_ctr
If fname <> "" Then 'make sure fname is not blank
With WdObj
.ChangeFileOpenDirectory ActiveWorkbook.Path 'save Dir
.ActiveDocument.SaveAs Filename:=fname & ".docx"
End With
Else:
MsgBox ("File not saved, naming range was botched, guess again.")
End If
With WdObj
.ActiveDocument.Close
.Quit
End With
Set WdObj = Nothing
End Sub
两个代码都设置为循环并完全按照设计进行。但现在我想将他们各自的动作合并到一个Word文件中 - 我真的被卡住了(帮助?)。我看不到将两个代码嵌入彼此的方法(甚至不确定它是否可行)。如果可以嵌套很好的代码 - 但是我无法想象如何嵌套相应的循环函数。
那就是说,这就是我希望能够做到的。首先,将代码添加到Word VBA(LoopEMF),以便它在每个循环中将图X递增1(图1,图2等)。完成后,似乎应该可以修改Excel VBA(Insert_Table2),以便它打开带有.emf文件的Word文档,查找文本字符串,并在从文本字符串返回回车后粘贴表。如果一个善良的灵魂可以帮助我走得那么远,那么最后的任务似乎是设置两个插入对象的对齐和位置,使它们位于页面的两端并相对于彼此正确定位。
答案 0 :(得分:0)
绝对可行和可行,特别是因为你已经完成了工作 - 从Word中了解Excel自动化....这是一个 Good start for integrating Excel data into Word