Как мне не печатать строку, если поле запроса AD пусто - PullRequest
1 голос
/ 25 апреля 2019

Я написал скрипт, который запрашивает наши контроллеры домена AD и извлекает данные для создания подписи электронной почты. Я сделал это с помощью многочисленных онлайн-руководств, так как раньше у меня не было опыта работы с этим языком.

Все работает отлично, за исключением одного поля;мобильный телефон.

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

On Error Resume Next 
Set objSysInfo = CreateObject("ADSystemInfo") 

' ########### This section connects to Active Directory as the currently logged on user 
 strUser = objSysInfo.UserName

Set objUser = GetObject("LDAP://" & strUser)  


strUKPhone = "+44 (0)20 3457 7633" 
strUKMobile = objUser.mobile
strEmail = objuser.mail 
strWeb = objuser.wWWHomePage 
strNotes = objuser.info 
strExt = objuser.ipPhone 
strDDI = objuser.homephone 
strSALUTATION = "Kind regards," 
strEmailTEXT = "E " 
strWebTEXT = "W "
strAddressTEXT = "A "
strPhoneTEXT = "T "
strMobileTEXT = "M "

' ########### Sets up word template 

Set objWord = CreateObject("Word.Application") 
Set objDoc = objWord.Documents.Add() 
Set objSelection = objWord.Selection 

objSelection.Style = "No Spacing" 
Set objEmailOptions = objWord.EmailOptions 
Set objSignatureObject = objEmailOptions.EmailSignature 
Set objSignatureEntries = objSignatureObject.EmailSignatureEntries 

' ########### Calls the variables from above section and inserts into word template, also sets initial font typeface, colour etc. 


objselection.TypeText strEmailTEXT 
  objSelection.Font.Color = RGB (000,000,000)
  objselection.Font.Bold = false 
Set objLink = objSelection.Hyperlinks.Add(objSelection.Range, "mailto: " & strEmail, , , strEmail) 
  objLink.Range.Font.Name = "Arial" 
  objLink.Range.Font.Size = 8.5 
  objLink.Range.Font.Bold = false 
objSelection.Font.Color = RGB (000,000,000)
objSelection.TypeText "  |  "
  objSelection.Font.Color = RGB (181,021,059)
objSelection.TypeText strMobileTEXT
  objSelection.Font.Color = RGB (000,000,000)
objSelection.TypeText strUKMobile 
  objSelection.TypeParagraph()
  objSelection.Font.Color = RGB (181,021,059)


Set objSelection = objDoc.Range() 
objSignatureEntries.Add "Email Signature", objSelection 
objSignatureObject.NewMessageSignature = "Email Signature" 
objSignatureObject.ReplyMessageSignature = "Email Signature" 
Set objSelection = objDoc.Range()
objDoc.Saved = True 

objWord.Quit

1 Ответ

0 голосов
/ 25 апреля 2019

Удалите строку strUKMobile = objUser.mobile там, где она сейчас находится, и в той части, где вы строите текст, сделайте следующее:

objselection.TypeText strEmailTEXT 
  objSelection.Font.Color = RGB (000,000,000)
  objselection.Font.Bold = false 
Set objLink = objSelection.Hyperlinks.Add(objSelection.Range, "mailto: " & strEmail, , , strEmail) 
  objLink.Range.Font.Name = "Arial" 
  objLink.Range.Font.Size = 8.5 
  objLink.Range.Font.Bold = false 
objSelection.Font.Color = RGB (000,000,000)

' Only write this if the mobile phone has a value
If Not (IsNull(objUser.mobile) Or IsEmpty(objUser.mobile)) Then
    strUKMobile = objUser.mobile
    objSelection.TypeText "  |  "
      objSelection.Font.Color = RGB (181,021,059)
    objSelection.TypeText strMobileTEXT
      objSelection.Font.Color = RGB (000,000,000)
    objSelection.TypeText strUKMobile 
      objSelection.TypeParagraph()
      objSelection.Font.Color = RGB (181,021,059)
End If
...