Prosim za pomoč pri rešitvi problema, ki se mi pokaže pri zagonu makra v Wordu.
Želja je, da se po spajanju dokumentov izdelane priponke samodejno shranijo v PDF obliki v mapo, ki je odprta za posameznega prejemnika. V Excelovi tabeli, je tudi stolpec s povezavami do mape za posametnega prejemnika.
Bing AI mi je za ta namen napisal makro, ki sem ga v Wordu zagnal.
Ob zagonu makra se mi pojavlja napaka ' Compile error: User defined type not defined '. Po Bing AI navodilih sem preveril, če imam pod 'Tools -> References' označeno Microsoft Excel 16.0 Object Library in Microsoft Word 16.0 Object Library. Možnost Microsoft Word 16.0. Object Library ni bila odkljukana, zato sem jo odkljukal in shranil. Napaka se je ponovila zato sem zopet pogledal na isto mesto in Wordova knjižnica ni bila odkljukana čeprav sem prej spremembo shranil. Vezano na to težavo mi je Bing AI ponudil te možnosti za rešitev problema:
1. Odstranite in ponovno dodajte referenco: ( to sem storil, rezultat je bil isti);
2. Preverite, ali je Microsoft Word dejansko nameščen: ( glede na to, da lahko Word odprem in v njem delam, predvidevam, da je dejansko nameščen?)
3. Uporabite “late binding”: ( tudi to sem spremenil po navodilih, pa ni bilo spremembe);
4. Preverite, ali so potrebne posodobitve: ( preveril in posodobil, nobene spremembe).
Scripta, ki mi jo je za potrebe samodejnega shranjevanja v posamezne mape napisal je:
' Sub SaveInvoices()
Dim wd As Word.Application
Dim wdDoc As Word.Document
Dim xl As Excel.Application
Dim xlWb As Excel.Workbook
Dim xlWs As Excel.Worksheet
Dim i As Long
Set wd = New Word.Application
Set wdDoc = wd.Documents.Open("02_Račun za tekoči mesec.doc")
Set xl = New Excel.Application
Set xlWb = xl.Workbooks.Open("01_Seznam računov za leto 2024.xlsx")
Set xlWs = xlWb.Sheets("List1")
wd.Visible = True
xl.Visible = True
For i = 2 To xlWs.Cells(xlWs.Rows.Count, "A").End(xlUp).Row
If Not IsEmpty(xlWs.Cells(i, "C").Value) Then
With wdDoc.MailMerge
.MainDocumentType = wdFormLetters
.OpenDataSource Name:=xlWb.FullName, _
ReadOnly:=True, _
AddToRecentFiles:=False, _
LinkToSource:=True, _
Connection:="Data Source=" & xlWb.FullName & ";Mode=Read", _
SQLStatement:="SELECT * FROM [" & xlWs.Name & "$] WHERE `ID NAROČNIKA` = " & xlWs.Cells(i, "C").Value
.Destination = wdSendToNewDocument
.Execute
End With
wd.ActiveDocument.SaveAs2 FileName:=xlWs.Cells(i, "Z").Value & xlWs.Cells(i, "B").Value & ".pdf", FileFormat:=wdFormatPDF
wd.ActiveDocument.Close False
End If
Next i
wdDoc.Close False
Set wdDoc = Nothing
wd.Quit
Set wd = Nothing
xlWb.Close False
Set xlWb = Nothing
xl.Quit
Set xl = Nothing
End Sub'
Mogoče veste, kako lahko rešim problem ( samo ne mi prosim reči: ' Ja Bing AI vpraši!',
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Če pa obstaja še kakšen drugačen način za rešitev samodejnega shranjevanja spojene datoteke v posamezno mapo, bo pa tudi dobrodošla informacija!
Hvala za odgovor!
Viktor