Я работаю над кодом VBA, чтобы сохранить книгу Excel под конкретным именем на основе формулы в ячейке Y1
на листе Schedule_Maker
.После сохранения файла я хочу отправить книгу в виде приложения (через outlook) на указанный адрес электронной почты («specname@company.com»)
Проблемы: -У меня возникли проблемы при написании кодав saveAs
и .xlsm
на основе моей формулы в Y1
-Так как у каждого пользователя свой компьютер, мне нужен код, чтобы найти его «папку« Мои документы »» и сохранить книгу по этому пути к файлу.-Я не уверен, что лучший способ написать код для присоединения сохраненной книги к электронному письму.
Вот мой код: любая помощь будет принята с благодарностью.Спасибо.
Private Sub SaveandEmail()
Dim strFolder As String
Dim i As Long
'Find the position of the period in the file name
i = InStr(ActiveWorkbook.Name, ".")
'Create a default file name by concatenating the file name without the extention _
Filename = ThisWorkbook.Sheets("Schedule_Maker").Range("Y1").Value & ".xlsm"
'Open Save As dialog to a default folder with default file name
With Application.FileDialog(msoFileDialogSaveAs)
.AllowMultiSelect = False
. Filename
.InitialView = msoFileDialogViewDetails
If .Show = -1 Then strFolder = .SelectedItems(1) Else Exit Sub
'get selected folder path from FileDialog, but remove filename from FileDialog
folderPath = call GetFolderPath
'Save this workbook in chosen file path & appropriate filename
'File format .xlsm
ThisWorkbook.SaveAs Filename:=folderPath & Filename, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End With
End Sub
Sub GetFolderPath()
Dim objSFolders As Object
Dim Folderpath As String
Set objSFolders = CreateObject("WScript.Shell").SpecialFolders
objSFolders ("mydocuments")
End With
End Sub