這段代碼查看了我的Lotus Notes收件箱,(我需要打開收件箱才能作業,但這并不重要)它將收件箱中每封電子郵件的主題行輸入到C1。然后,它對下一封郵件再做一次,并覆寫C1,這樣回圈往復,直到每次都覆寫C1的所有郵件。
這段代碼將C1中的任何內容與B列中的每個條目進行比較。當它發現C1與B列中的任何數值相匹配時,它就會運行Forward_Email函式,該函式將C1中的主題行回傳到Lotus Notes,根據主題行找到該郵件并使用匹配行中的電子郵件地址進行轉發。
我的問題是,我想利用我的代碼(Substring_Check)并在填充C1的主題行的代碼中運行它。我想讓它在下一個回圈寫C1之前運行,這樣Substring_Check可以檢查C1中的資訊和B列中的資訊,如果有匹配,它將轉發郵件,如果沒有,回圈可以覆寫C1中的資訊并重復。什么是讓這種合并發生的最佳方式?
uj5u.com熱心網友回復: 正如Richard在他的評論中所寫的那樣,答案似乎是微不足道的,但我還是要嘗試一下: 你不需要在C1中添加任何資訊。
你根本不需要在你的代碼中寫C1。在你的回圈中,只需在子串查找函式中加入一個引數的呼叫: 你的代碼中根本不需要寫C1。
Subject通常只包含一個值,我們不需要一個陣列來進行字串比較,我們只需要使用第一個值,并將其作為引數交給函式。
這仍然遠非最佳方案,但回答了你的問題......
標籤:
Dim v As Object
Dim vn As Object
Dim e As Object
Dim doc As Object
Dim rtitem As Variant
Dim nit As Object
視圖 = "$All"/span>
Set NSession = CreateObject("Notes.NotesSession" )
Set NMailDb = NSession.GetDatabase(""/span>, "")
If Not NMailDb.IsOpen Then
NMailDb.OPENMAIL
End If
Set v = NMailDb.GetView(View)
Set vn = v.CreateViewNav()
Set e = vn.GetFirstDocument()
Do While Not (e Is Nothing)
Set doc = e.Document
Lines = doc.GetItemValue("subject")
Range("C1").Resize(UBound(Lines) 1, 1).Value = Application.WorksheetFunction.Transpose(Lines)
Set e = vn.GetNextDocument(e)
Loop
End Sub
Public Sub SubstringCheck()
Dim i As Long,icount As Integer。
Dim Lastrow As Long
Dim MainString As String
Dim SubString As Variant
lastrow = ActiveSheet.Range("A30000").End(xlUp) .Row
For i = 1 To lastrow
MainString = Range("C1")
SubString = Range("B" & i)
If InStr(1, LCase(MainString), LCase(SubString), vbTextCompare) < > 0 Then
Forward_Email MainString, Range("A"/span> & i)
icount = icount 1
ElseIf InStr(LCase(MainString), LCase(SubString)) = 0 Then
結束 若
Next i
End Sub
Dim subject as String
Do While Not (e Is Nothing)
Set doc = e.Document
subject = doc.GetItemValue("subject")(0)
SubstringCheck subject
Set e = vn.GetNextDocument(e)
Loop Public Sub SubstringCheck( MainString as String )
Dim i As Long, icount As Integer
Dim Lastrow As Long
Dim SubString As Variant
Lastrow = ActiveSheet.Range("A30000").End(xlUp) .Row
For i = 1 To lastrow
SubString = Range("B"/span> & i)
If InStr(1, LCase(MainString), LCase(SubString), vbTextCompare) < > 0 Then
Forward_Email MainString, Range("A"/span> & i)
icount = icount 1
ElseIf InStr(LCase(MainString), LCase(SubString)) = 0 Then
結束 若
Next i
End Sub
