压力很大的经理试图解决我们组织CRM中的问题。
我们设置了一个宏,用于向客户端发送“临时”文本消息。文本输入的字符数限制为160,如果超出该限制,则会弹出一个消息框,告诉您将文本减少x个字符。
单击“确定”时,它会杀死整个输入框(因此您必须重新键入原始消息的新的较短版本)。
我该如何设置它,如果您超出字符数限制,它会告诉您,然后使您有机会返回并删除一些字符?
这是我认为相关的代码部分:
set msgEntryDlg = CreateDialog("Adhoc SMS")
set msgTxtCtl = msgEntryDlg.AddControl("SMS Message: ",2, "")
if NOT msgEntryDlg.Execute then
Msgbox "Message cancelled!"
Exit sub
end if
mail_message = msgTxtCtl.Text
mail_message = " " + mail_message
If Len(mail_message) < 1 Then
MsgBox "Message was empty, please enter a message!"
Exit Sub
End If
If Len(mail_message) > 160 Then
MsgBox "Message is too long, please reduce by " & (len(mail_message) - 160) & " characters.",4112
Exit Sub
End If
我认为这与循环有关……但我一无所知!
谢谢。
答案 0 :(得分:1)
未经测试,但我相信您正在寻找这样的东西:
Dim success As Boolean
Do
Set msgEntryDlg = CreateDialog("Adhoc SMS")
Set msgTxtCtl = msgEntryDlg.AddControl("SMS Message: ", 2, "")
If Not msgEntryDlg.Execute Then
MsgBox "Message cancelled!"
Exit Do
End If
mail_message = msgTxtCtl.Text
mail_message = " " + mail_message
If Len(mail_message) < 1 Then
MsgBox "Message was empty, please enter a message!"
End If
If Len(mail_message) > 160 Then
MsgBox "Message is too long, please reduce by " & (Len(mail_message) - 160) & " characters.", 4112
End If
success = True
Loop Until success
如果需要重复操作直到满足条件,请在每个循环结束时检查条件。请注意,取消退出的是Do
,而不是Sub
。