Ich schrieb diesen Code auf einem anderen PC, der Win10 und Office 2016 hatte. Es wird in einer Outlook-Regel verwendet. Es speichert die xml
Dateien von der E-Mail in einen Ordner und ändert es in xlsx
Datei in einem anderen Ordner. In Outlook 2016 läuft es einwandfrei. Ich habe es auf ein anderes Notebook kopiert.VBA-Code-Update von Outlook 2016 bis 2013
Dieses Notebook verfügt über Win10 und Office 2013 und dieser Code wird in Outlook 2013 ohne Fehlermeldung ausgeführt, aber die xml
Dateien wurden weder im angegebenen Ordner gespeichert noch in xlsx
konvertiert.
Was könnte in diesem Code falsch sein?
- Visual Basic für Aplications
- Microsoft Outlook 15.0 Object Library
- OLE Automation
- Microsoft Office 15.0 Object Library
- :
Option Explicit Public Sub saveconvAttachtoDisk(itm As Outlook.MailItem) Dim objAtt As Outlook.Attachment Dim saveFolder As String Dim dateFormat As String Dim convFormat As String Dim objFSO As Object Dim objFolder As Object Dim objFile As Object saveFolder = "C:\Users\tulaj\Documents\xml\" convFolder = "C:\Users\tulaj\Documents\xls\" dateFormat = Format(itm.ReceivedTime, "yyyy-mm-dd HH-mm-ss") For Each objAtt In itm.Attachments objAtt.SaveAsFile saveFolder & dateFormat & objAtt.FileName Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(saveFolder) If UCase(Right(objAtt.FileName, Len(XML))) = UCase(XML) Then NewFileName = convFolder & dateFormat & objAtt.FileName & "_conv.xlsx" Set ConvertThis = Workbooks.Open(saveFolder & dateFormat & objAtt.FileName) ConvertThis.SaveAs FileName:=NewFileName, FileFormat:= _ xlOpenXMLWorkbook ConvertThis.Close End If Next Set objAtt = Nothing End Sub
In Tools Referenzen sind die falowings ausgewählt Microsoft Excel 15.0 Objektbibliothek
- Microsoft Scripting Runtime
Wo ist die Variable 'XML' definiert? (Ich nehme an, es muss irgendwo ** definiert werden ** oder es wäre nicht in Office 2016 gelaufen.) – YowE3K
Haben Sie überprüft, ob der Code überhaupt gestartet wurde? Setzen Sie einen Haltepunkt in die erste Zeile und rufen Sie ihn manuell auf. Vielleicht sollten Sie 'Environ (" USERPROFILE ")' anstelle des fest codierten Pfades verwenden. – PatricK
@ PatricK Ich kann keinen Unterbrechungspunkt darin setzen. Ich weiß nicht warum. Selbst die F8-Tasten-Schritt-für-Schritt-Funktion funktioniert nicht. – vega69