私は2つのボタン(更新&広告)を持つフォームを持っています。フォームに記入してそのうちの1つを押すと、他のシートのレコードが作成または更新されます。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
[Excelのマクロメールを送る](http://stackoverflow.com/questions/668255/excel-macro-send-email) –