我有一个跟踪发票的工作表,我正在尝试生成一个自动电子邮件,如果第12列中的单元格包含AUTOEMAIL,它会将所有行与我使用TRIM函数生成的类似电子邮件地址组合在一起。它会将所有类似的行(基于第15列的电子邮件地址)拉入LotusNotes电子邮件中。 Ron De Bruin在他的网站上有一些很棒的例子。我试图编写一个循环,尝试循环并根据电子邮件地址复制所有行。当我去运行时,代码什么都不做,但没有出现错误。在Outlook中有完成此操作的实例,但它们不适用于LotusNotes,因为问题是迟到与早期绑定。我也是VBA自动化的新手。
Sub Send_Data()
Dim noSession As Object, noDatabase As Object, noDocument As Object
Dim vaRecipient As Variant
Dim rnBody As Range
Dim Data As DataObject
Const stSubject As String = "TEST"
Const stMsg As String = "TEST"
Const stPrompt As String = "Please select the range:"
lastrow = Range("N" & Rows.Count).End(xlUp).row
For Each Cell In Range("N8:N" & lastrow)
If WorksheetFunction.CountIf(Range("N8:N" & Cell.row), Cell) = 1 Then
If Cells(Cell.row, 11) = "AUTOEMAIL" Then
rnBody = "Hello" & vbNewLine & vbNewLine & _
ActiveCell.EntireRow.Select
On Error Resume Next
'The user canceled the operation.
If rnBody Is Nothing Then Exit Sub
On Error GoTo 0
'Instantiate Lotus Notes COM's objects.
Set noSession = CreateObject("Notes.NotesSession")
Set noDatabase = noSession.GETDATABASE("", "")
'Make sure Lotus Notes is open and available.
If noDatabase.IsOpen = False Then noDatabase.OPENMAIL
'Create the document for the e-mail.
Set noDocument = noDatabase.CreateDocument
'Copy the selected range into memory.
rnBody.Copy
'Retrieve the data from then copied range.
Set Data = New DataObject
Data.GetFromClipboard
'Add data to the mainproperties of the e-mail's document.
With noDocument
.Form = "Memo"
.SendTo = vaRecipient
.Subject = stSubject
'Retrieve the data from the clipboard.
.Body = stMsg & " " & Data.GetText
.SaveMessageOnSend = True
End With
' SEND EMAIL
With noDocument
.PostedDate = Now()
.Send 0, vaRecipient
End With
' REMOVE FROM MEMORY
Set noDocument = Nothing
Set noDatabase = Nothing
Set noSession = Nothing
'SWITCH BACK TO EXCEL
AppActivate "Microsoft Excel"
'EMPTY COPY-PAST CLIPBOARD
Application.CutCopyMode = False
' DISPLAYS TO USER IF SUCCESSFUL
MsgBox "Complete!", vbInformation
End If
End If
Next Cell
End Sub
答案 0 :(得分:0)
我将电子邮件正文范围设置为提示框,用户可以在其中突出显示单元格,然后将另一个提示框设置为使用TRIM()函数创建的电子邮件。我意识到代码的设置方式不允许我想做的事情。新方法效果很好
Treevar