2016-07-19 9 views
0

Пользователи будут вводить ответы через пользовательскую форму, после чего будет отправлено резюме ответов по электронной почте. Несколько вопросов в пользовательской форме являются необязательными.Операторы IF внутри .HTMLBody

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

Есть ли способ использовать условный оператор для форматирования определенных полей в разделе .HTMLBody? (IIF?)

Пример ниже (поле «Бизнес-единица» дополнительно).

спасибо.

Dim EmailBody as String 

EmailBody = "Unit Name: " & UCase(Me.ttbUnitName.Value) & “<br>” _ 
    & "Nation: " & UCase(Me.cbxNation.Value) & “<br>” _ 
    & "State: " & UCase(Me.cbxState.Value) & “<br>” _ 
    & "County: " & UCase(Me.cbxCounty.Value) & “<br>” _ 
    & "Business Unit: " & UCase(Me.ttbBusinessUnit.Value) 

    With MItem 
     .To = "[email protected]" 
     .CC = myEmail 
     .DeferredDeliveryTime = SendAt 
     .Subject = Me.Name & " Submission" 
     .HTMLBody = EmailBody 
    End With 

ответ

0

Нечто подобное.

"<font style='color:" & iif(len(Me.ttbBusinessUnit.Value)>0,"red","black") & ";'>" & UCase(Me.ttbBusinessUnit.Value) & "</font>"

+0

'' red' и black' должны быть указаны – litelite

+0

@litelite не при использовании стиля '<стиль шрифта =«цвет: красный»> тест' –

+1

Верно не в HTML, но определенно в VBA, поскольку они являются строковыми литералами. –

1

.HTMLBody это просто строка (которая, как ожидается, будет HTML). Вы можете использовать if при построении этой строки.

Таким образом, вы можете использовать конструкцию как этот

Dim EmailBody as String 

EmailBody = "Unit Name: " & UCase(Me.ttbUnitName.Value) & “<br>” _ 
    & "Nation: " & UCase(Me.cbxNation.Value) & “<br>” _ 
    & "State: " & UCase(Me.cbxState.Value) & “<br>” _ 
    & "County: " & UCase(Me.cbxCounty.Value) & “<br>” 
    if Me.ttbBusinessUnit.Value <> "" then 'or whatever condition you have 
     EmailBody = EmailBody & "<font color=""red"">Business Unit: " & UCase(Me.ttbBusinessUnit.Value) & "</font>" 
    end if 

    With MItem 
     .To = "[email protected]" 
     .CC = myEmail 
     .DeferredDeliveryTime = SendAt 
     .Subject = Me.Name & " Submission" 
     .HTMLBody = EmailBody 
    End With