Czy mogę przekazać fileName do makra programu Excel?Dzwonię do postępujesz zgodnie z procedurą programu Outlook? W tej chwili subskryb saveReportstoDisk jest uruchamiany przez regułę programu Outlook i mogę otworzyć mój plik programu Excel. Teraz jestem pewien, jak przekazać parametr fileName z dwóch subskrybentów programu Outlook do sub subskrybenta programu Excel.
Sub saveReportstoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim fileName As String
Dim saveFolder As String
Dim i As Long
Dim dateFormat
saveFolder = "C:MyFolder"
For Each objAtt In itm.Attachments
fileName = objAtt.fileName
i = i + 1
dateFormat = Format(Now, "YYYY-mm-dd HH_mm_ss")
objAtt.SaveAsFile saveFolder & "" & fileName
Next objAtt
CallExcel
End Sub
Sub CallExcel()
Dim excelApp As Object
Set excelApp = CreateObject("Excel.Application")
excelApp.Visible = True
excelApp.Workbooks.Open "I:ImportGenerator.xlsm"
" run the macro
excelApp.Run "ThisWorkbook.PrepareReport"
excelApp.Quit
Set excelApp = Nothing
End Sub
Odpowiedzi:
2 dla odpowiedzi № 1Wydaje mi się, że rozumiem, dokąd zmierzasz, ale nie zamierzam stamtąd otwierać pliku. Muszę przekazać sFile do mojego makra programu Excel. - Tourless 29 minut temu
To, czego potrzebujesz, to jest Jak wywołać makra Microsoft Excel, które pobierają parametry
Zakładam, że teraz twoje makro wygląda tak w Excelu
Sub PrepareReport()
End Sub
Zmień na
Sub PrepareReport(sFile As String)
"
"~~> Rest of the code
"
End Sub
A następnie z programu Outlook przekaż nazwę pliku jako
excelApp.Run "ThisWorkbook.PrepareReport", FileName