Как сохранить как с созданным по формуле имя файла и загрузить книгу в виде вложения электронной почты - PullRequest
0 голосов
/ 02 мая 2019

Я работаю над кодом 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...