Ich habe Code in zwei erwähnten Anwendungen geschrieben. Dieser Code in Word legt alle emf-Dateien in Wort zusammen mit der angegebenen Überschrift:Wie effektiv Word-und Excel-VBA-Funktionen zu konsolidieren?
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
Der zweite Satz von Code kopiert eine Gruppe von Zellen in Excel (sie kodieren eine kleine Tabelle, die Werte basierend auf einem Offset-Updates) und Pasten, die Informationen in Word kopiert:
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
Beide Codes sind auf Schleife und genau das tun, wie sie konzipiert sind. Aber jetzt möchte ich ihre jeweiligen Aktionen in einer einzigen Word-Datei kombinieren - und ich bin wirklich fest (Hilfe?). Ich kann keine Möglichkeit sehen, die beiden Codes ineinander zu integrieren (und nicht einmal sicher, ob es machbar ist). Wenn es möglich ist, den Code zu verschachteln, der großartig wäre - aber ich kann mir nicht vorstellen, wie man die jeweiligen Schleifenfunktionen verschachtelt.
Das sagte, hier ist, was ich gerne tun könnte. Fügen Sie zuerst Code zu der Word-VBA (LoopEMF) hinzu, so dass es Abbildung X um eins mit jeder Schleife (Abbildung 1, Abbildung 2 usw.) erhöht. Damit scheint es möglich zu sein, die Excel-VBA (Insert_Table2) so zu ändern, dass sie das Word-Dokument mit den .emf-Dateien öffnet, nach der Textzeichenfolge sucht und die Tabelle nach einem Wagenrücklauf aus der Textzeichenfolge einfügt. Wenn eine freundliche Seele mir helfen kann, so weit zu kommen, dann scheint es die letzte Aufgabe zu sein, die Ausrichtung und Position der zwei eingefügten Objekte so einzustellen, dass sie sich an gegenüberliegenden Enden der Seite befinden und richtig zueinander positioniert sind.
Nun, die „Bild X“ ist nicht Teil Ihres vorhandenen Code und Es ist unklar, was genau Sie wollen, obwohl es möglich ist, zu raten. Aber es ist eine ganz andere Frage als den Code zu kombinieren. Gemäß den Stack Overflow-Richtlinien für das Stellen von Fragen (siehe [Hilfe]) ist Ihre Frage "zu weit gefasst". Ich rate Ihnen, den Link [Bearbeiten] zu verwenden, um diesen Teil herauszunehmen und ihn in eine zweite Frage mit mehr Details zu stellen. Und bevor Sie das tun, untersuchen Sie die in Word eingebaute "Caption" -Funktion, da dies wahrscheinlich das ist, was Sie wollen. –
Ihre zweite Frage betrifft das Auffinden einer "Textzeichenfolge" - aber Sie sagen nicht genau, was das sein könnte - und das Einfügen von Excel-Inhalt danach. Sie müssen genauer wissen, was Sie hier brauchen, und das sollte wahrscheinlich der Schwerpunkt dieser Frage sein. –
Ihre dritte Frage gehört dann zu einer anderen Frage und sollte wahrscheinlich gestellt werden, nachdem Sie alles andere sortiert haben. –