/ / Jak skutecznie skonsolidować słowo i doskonalić funkcje VBA? - excel, vba, excel-vba, ms-word

Jak skutecznie skonsolidować słowo i doskonalić funkcje VBA? - excel, vba, excel-vba, ms-word

Napisałem kod w dwóch wymienionych aplikacjach. Ten kod w programie Word umieszcza wszystkie pliki .emf w słowie razem ze wskazanym nagłówkiem:

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

Drugi zestaw kodu kopiuje zestaw komórek w programie Excel (kodują małą tabelę, która aktualizuje wartości na podstawie offsetu) i wkleja, które skopiowały informacje do programu 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

Oba kody są ustawione na pętlę i robią dokładnie to samozostały zaprojektowane, ale teraz chcę połączyć ich odpowiednie działania w jeden plik Word - i naprawdę jestem zablokowany (pomoc?). Nie widzę sposobu na umieszczenie dwóch kodów w sobie nawzajem (i nawet nie jestem pewien, czy jest to wykonalne) .Jeśli możliwe jest zagnieżdżenie kodu, który byłby świetny - ale nie mogę sobie wyobrazić, jak zagnieżdżać odpowiednie funkcje pętli.

To powiedziawszy, oto, co chciałbym móc zrobić. Najpierw dodaj kod do programu Word VBA (LoopEMF), aby zwiększyć liczbę rysunków X o jedną dla każdej pętli (rysunek 1, rysunek 2 itd.). Po wykonaniu tego, wydaje się, że powinno być możliwe zmodyfikowanie Excel VBA (Insert_Table2) tak, aby otwierało dokument Word z plikami .emf, szukało ciągu tekstowego i wklejało tabelę po znaku powrotu karetki z ciągu tekstowego. Jeśli życzliwa dusza może mi pomóc zajść tak daleko, to wydaje się, że ostatnim zadaniem byłoby ustalenie uzasadnienia i położenia dwóch wstawionych obiektów, tak aby znajdowały się na przeciwnych końcach strony i były odpowiednio ustawione względem siebie.

Odpowiedzi:

0 dla odpowiedzi № 1

Zdecydowanie możliwe i wykonalne, zwłaszcza, że ​​już wykonałeś pracę - przeczytaj o automatyzacji Excela z Worda .... Tutaj jest Dobry początek do integracji danych Excela z Wordem