2014-07-18 3 views
0

Argh, l'objet ne prend pas en charge cette propriété ou erreur de méthode 438!Outlook: attacher un fichier avec un nom dynamique

Je ne l'ai pas essayé, mais je pense que cela pourrait fonctionner:

objFS.System.IO.Path.GetFileName(fileName) 
if objFS.System.IO.Path.GetFileName(fileName) = "VS12_WID1" Then 
fileName = AFile.Name 
getFileName = filePath & "/" & fileName 

je devrais simplfy plus puis essayez de renommer le fichier.

Sub AddAttachment() 
Dim myAttachments As Outlook.Attachments 
Dim getFile, fileName, filePath As String 


Set filePath = "F:\" 
Set fileName = "V_W_*_*_.pdf" 
Set getFile = "filePath" & "fileName" 
Set MyApp = CreateObject("Outlook.Application") 
Set myItem = MyApp.CreateItem(0) 
Set myAttachments = myItem.Attachments 

With myItem 
.To = "[email protected]" 
.CC = "" 
.Subject = "test" 
myAttachments.Add getFile 
.ReadReceiptRequested = False 
.HTMLBody = "Report(s) Attached" 
End With 
myItem.Send 
End Sub 

Je reçois une erreur de compilation: objet nécessaire à la fois mettre en évidence sous AddAttachment() et Set filePath. Je me sens si proche de faire ce travail!

CODE MISE À JOUR:

Sub AddAttachment() 
Dim myAttachments As Outlook.Attachments 
Dim getFileName, fileName, filePath As String 
Dim objFS: Set objFS = CreateObject("Scripting.FileSystemObject") 

Set filePath = "F:\" 
Set getFileName = filePath & fileName 
Set MyApp = CreateObject("Outlook.Application") 
Set myItem = MyApp.CreateItem(0) 
Set myAttachments = myItem.Attachments 

For Each fileName In filePath 
    If fcase(objFS.GetExtensionName(fileName)) = "VS111111_WID111A" Then 
     fileName = "VS111111_WID111A.pdf" 
     Exit For 
    End If 
Next 

With myItem 
.To = "[email protected]" 
.CC = "" 
.Subject = "" 
myAttachments.Add getFileName 
.ReadReceiptRequested = False 
.HTMLBody = "Report(s) Attached" 
End With 
myItem.Send 
End Sub 

Je connais assez pour lire le script pour comprendre ce qui se passe. Le code que j'ai fait ne peut trouver qu'un nom de fichier fixe. Comment le nom de fichier peut-il être rendu dynamique?

Sub AddAttachment() 
Dim myAttachments As Outlook.Attachments 
Set MyApp = CreateObject("Outlook.Application") 
Set myItem = MyApp.CreateItem(0) 
Set myAttachments = myItem.Attachments 

With myItem 
.To = "[email protected]" 
.CC = "[email protected]" 
.Subject = "" 
myAttachments.Add "F:\constantFilenameHas8char_constantFilenameHas7char_variableHas5Int_todaysModifiedDate_variableHas6Int.pdf" 
.ReadReceiptRequested = False 
.HTMLBody = "Report(s) Attached" 
End With 
myItem.Send 
End Sub 

Répondre

0

Votre requête n'est pas claire sur la façon dont vous voulez obtenir le filename.Think d'utiliser une variable et passer le chemin du fichier et le nom que vous devez.


FileToAttach dim sous forme de chaîne
FileToAttach = "FilePath" & "Nom du fichier"
myAttachments.Add FileToAttach


Pour votre code mis à jour
Sub AddAttachment()
Dim myAttachments Comme Outlook.Attachments
Dim getFileName, nom de fichier
Dim filePath comme objet
Dim obj As FileSystemObject
Set objFS = New FileSystemObject
Set filePath = objFS.GetFolder ("C: \ Users \ Dinesh \ Desktop \")
Set MyApp = CreateObject ("Outlook.Application")
Set MyItem = MyApp.CreateItem (0)
Set myAttachments = myItem.Attachments
Pour chaque UnFichier Dans filePath.Files
Debug.Print UCase (objFS.GetExtensionName (fileName))
Si UCase (objFS.GetExtensionName (UnFichier)) = "PDF" Puis
fileName = AFile.Name
getFileName = filePath & "/" & fileName
sortie pour
End If
Next
Avec MyItem
= .Pour ""
.CC = ""
.Subject = ""
myAttachments. Ajouter getFileName
.ReadReceiptRequested = False
.HTMLBody = "Rapport (s) ci-joint"
La manifestationTerminer avec
'myItem.Envoyer
End Sub

+0

Je l'ai testé et il attache uniquement le premier fichier qui a l'extension "pdf". Je vais continuer à essayer de créer du code qui va chercher un fichier avec une convention de nommage spécifique. – mrgrm00

+0

Doux! Je peux utiliser GetFileName ou GetFileNameWithoutExtension Method Method! Yay! – mrgrm00

+0

Je peux aussi travailler avec votre code actuel! Merci beaucoup! – mrgrm00

Questions connexes