› Sviluppare funzionalita su Microsoft Office con VBA › allegare più file con una stringa ad una mail versione2
-
AutoreArticoli
-
buon pomeriggio
sto cercando di mettere insieme il file dello scorso fine settimana e un istruzione che mi avevate aiutato a fare alcuni anni fa
nello scorso fine settimana mi avete fornito un'istruzione che restituiva l'estensione di un file con get_ext
io adesso avrei piacere invece di cercare i file dentro la cartella prova e poi allegare quelli il cui nome contiene 2017
innanzi tutto ho utilizzato questo per determinare il nome dei file
Sub LeggeFileInDir() Dim strFile As String Dim r As Integer mFolder = "e:\prova\" ' directory di cui ottenere in colonna A la lista file strFile = Dir(mFolder & "*.f01") r = 1 Do While strFile <> "" Cells(r, 2) = strFile 'copia i nomi dei file della cartella in colonna B p = InStr(strFile, ".") ' conta i caratteri prima del 1 spazio Cells(r, 8) = Left(strFile, p - 1) ' scrive il testo estratto prima dello spazio strFile = Dir ' ritorna sulla directory er cercare se ci sono altri file r = r + 1 ' aumenta il numeratore di 1 per passare all'inserimento successivo Loop End Subpoi dovrei modificare questa stringa di comando per l'invio dei file che mi interessano
For Each ffile In ffiles If get_ext(ffile.Name) Like "2017" Then eMail.Attachments.Add CStr(ffile) Nextnaturalmente qui devo sostituire get_ext ( perchè era l'istruzione utilizzata nel programma precedente) con quale istruzione?
Se poi posso evitare di utilizzare le celle d'appoggio per avere i nomi dei file da allegare meglio ancora
grazie
Allegati:
You must be logged in to view attached files.ciao ho trovato una soluzione ma c'è ancora un errore mio di sintassi per cui non mi genera gli allegati
il file si chiamano
ft201701
ft201702
ecc
grazie
forse è l'impostazione like che è errata??
Allegati:
You must be logged in to view attached files.Hai fatto tutto da solo e sono contento 🙂
per informazione:
- get_ext è una funzione personalizzata (quindi non incorporata) che restituisce l'estensione di un nome di file (per l'esattezza ricerca nella stringa passata in argomento l'ultimo punto e restituisce tutto quello che segue, dando per scontato che l'ultimo punto identifica l'inizio dell'estensione)
- se devi solo controllare che una stringa ne contenga un'altra utilizzi Like con i jolly, come hai scoperto:
If ffile.Name Like "*2017*" Then ...- infine
mb wrote:Se poi posso evitare di utilizzare le celle d'appoggio per avere i nomi dei file da allegare meglio ancora
certo che puoi, riesci da solo? hai visto il mio codice nell'altra discussione che cicla tra i diversi file da allegare?
-
AutoreArticoli
