Excel Электронная почта: эта кнопка копирует

У меня есть форма с двумя кнопками («Обновление и объявление») (здесь приведен код из одного из них). Если вы заполните форму и нажмите одну из них, запись на другом листе будет сделана или обновлена.

Я хотел бы иметь встроенную в них функцию электронной почты, чтобы при нажатии на нее она также отправляла такую ​​же информацию в электронном письме.

Я новичок в VBA. Это была книга, которую я загрузил из Интернета и менялся в соответствии с моими потребностями. Поэтому я не разработчик этого кода, но я вижу, что Set myCopy = inputWks.Range("OrderEntry") – это данные, которые мне нужны. Как вставить это в тело письма?

 Sub UpdateLogRecord() Dim historyWks As Worksheet Dim inputWks As Worksheet Dim lRec As Long Dim oCol As Long Dim lRecRow As Long Dim myCopy As Range Dim myTest As Range Dim lRsp As Long Set inputWks = Worksheets("Input") Set historyWks = Worksheets("Werknemers") oCol = 3 'order info is pasted on data sheet, starting in this column 'check for duplicate order ID in database If inputWks.Range("CheckID") = False Then lRsp = MsgBox("Personeelsnummer niet in de database. record toevoegen?", vbQuestion + vbYesNo, "Nieuw Personeelsnummer") If lRsp = vbYes Then UpdateLogWorksheet Else MsgBox "Selecteer een Personeelsnummer uit de database." End If Else 'cells to copy from Input sheet - some contain formulas Set myCopy = inputWks.Range("OrderEntry") lRec = inputWks.Range("CurrRec").Value lRecRow = lRec + 1 With inputWks Set myTest = myCopy.Offset(0, 2) If Application.Count(myTest) > 0 Then MsgBox "Please fill in all required cells!" Exit Sub End If End With With historyWks With .Cells(lRecRow, "A") .Value = Now .NumberFormat = "mm/dd/yyyy hh:mm:ss" End With .Cells(lRecRow, "B").Value = Application.UserName oCol = 3 myCopy.Copy .Cells(lRecRow, 3).PasteSpecial Paste:=xlPasteValues, Transpose:=True Application.CutCopyMode = False End With 'clear input cells that contain constants With inputWks On Error Resume Next With myCopy.Cells.SpecialCells(xlCellTypeConstants) .ClearContents Application.GoTo .Cells(1) ', Scroll:=True End With On Error GoTo 0 If .Range("ShowMsg").Value = "Yes" Then MsgBox "Database is geupdated" End If End With End If End Sub 

Этот код можно использовать здесь . Поместите это где (когда) вы хотите отправить электронное письмо. Прочитайте комментарии в тексте кода. (Я прокомментировал блоки OnError для отладки, раскомментировал их, когда вы используете код).

  'On Error GoTo PROC_EXIT Dim OL As New Outlook.Application Dim olMail As Outlook.MailItem Set olMail = OL.CreateItem(olMailItem) With olMail .To = "[email protected]" 'you want the email to be sent to this address .Subject = "test-emai" 'Subject of the email (can be referred to a cell) .Body = myCopy 'This line displays the email 'comment this and uncomment next line to send the email .Display vbModal '.Send End With 'PROC_EXIT: 'On Error GoTo 0 OL.Quit Set OL = Nothing 
Давайте будем гением компьютера.