Ошибка выполнения 13 - Несоответствие типов при попытке изменить элемент richtext в Lotus Notes - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь отредактировать существующий документ заметок через VBA и затем отправить его автоматически.

Я уже создал почти все - просто нужно выяснить, как именно я могу добавить определенный текст вопределенная позиция в элементе richtext.

Sub sendMail() 'inputIndID As String, inputRecipient As String, inputIncDescription As String)

Dim mailDB As Object
Dim mailToSend As Object
Dim body As Object
Dim session As Object
Dim view As Object
Dim entries As Object
Dim docIDs() As String
Dim docSubjects() As String
Dim incID, incDescription As String
Dim element As String
Dim bodyNavigator As Object

incID = "<INC-ID>"
incDescription = "<INC-Betreff>"

'Start a session to notes
Set session = CreateObject("Notes.NotesSession")
'This line prompts for password of current ID noted in Notes.INI
'Call Session.Initialize
'or use below to supply password of the current ID

'Open the mail database in notes
Set mailDB = session.GetDatabase("Eschen10/Presta", "mail\qcpcsupport.nsf")
If mailDB.IsOpen = False Then
    Call mailDB.Open
End If

'Search for all the messages in the folder "Umfrage"
Set view = mailDB.GetView("Umfrage")
Set entries = view.AllEntries
If entries.Count = 0 Then
    MsgBox "Keine Nachricht im Umfrage Ordner."
End If
ReDim docIDs(entries.Count - 1)
ReDim docSubjects(entries.Count - 1)
Set entry = entries.GetFirstEntry
Do Until entry Is Nothing
    docIDs(i) = entry.NoteID
    docSubjects(i) = entry.Document.GetItemValue("Subject")(0) 'based on standard R5 mail template column order
    'If the documents title matches the searched one it will be taken and worked with later
    If docSubjects(i) = "Umfrage PC-Support Servicequalität" Then
        Set mailToSend = entry.Document
    End If
    i = i + 1
    Set entry = entries.GetNextEntry(entry)
Loop


'Set the recipient
Call mailToSend.ReplaceItemValue("SendTo", "simon.hartmann@thyssenkrupp.com")

'Get and change the body content
Set body = mailToSend.GetFirstItem("Body")
Set bodyNavigator = body.CreateNavigator()

'Replace markers with correct text

element = "<"

If (body.Type = RICHTEXT) Then
    Call bodyNavigator.FindFirstString(element)
    Call body.BeginInsert(bodyNavigator, True)
    Call body.AppendText("123456")
    Call bodyNavigator.FindNextString(element)
    Call body.BeginInsert(bodyNavigator, True)
    Call body.AppendText("Antrag Guest WLAN")
End If


'Example to save the message (optional)
mailToSend.SaveMessageOnSend = True

'Send the document
'Gets the mail to appear in the Sent items folder
mailToSend.Save True, False
Call mailToSend.ReplaceItemValue("PostedDate", Now())
Call mailToSend.Send(False)

'changes the body back and saves the document in the folder "Umfrage" so it can be resent next time
Call mailToSend.PutInFolder("Umfrage")

'Clean Up
Set mailDB = Nothing
Set mailToSend = Nothing
Set body = Nothing
Set session = Nothing


End Sub

В настоящее время происходит сбой в следующей строке:

Call body.BeginInsert(bodyNavigator, True)

Я получаю сообщение об ошибке - Ошибка выполнения 13 - Несовпадение типов

Я также уже пытался дать всем переменным правильный тип данных Lotus Notes - но затем у меня возникла проблема с каждой из этих переменных.

Есть ли способ, которым я могу "заставить" bodynavigator иметьправильный тип?Или где у меня ошибка?Мне не хватает библиотеки или чего-то еще?

Заранее спасибо !!!

С уважением, Саймон

1 Ответ

1 голос
/ 11 июня 2019

Читали ли вы документацию для NotesRichtextNavigator ?

Там вы найдете следующую информацию:

Параметры
target$

Строка.Строка поиска.

параметры $

Long.Любое из следующего.Укажите несколько параметров, комбинируя их с добавлением или логическим ИЛИ.

  • RT_FIND_ACCENTINSENSITIVE (4) (по умолчанию чувствителен к ударению)
  • RT_FIND_CASEINSENSITIVE (1) (по умолчанию чувствителен к регистру)
  • RT_FIND_PITCHINSENSITIVE (2) (значение по умолчанию не зависит от высоты тона)

Итак: Ваш второй параметр "true" просто неправильный тип ... поэтому несоответствие типов ...

...