【问题标题】:String does not appear upon define定义时未出现字符串
【发布时间】:2016-09-23 03:10:31
【问题描述】:
Const vbDoubleQuote As String = """" 'represents 1 double quote (")
Const vbSingleQuote As String = "'" 'represents 1 single quote (')
Private WithEvents myOlItems  As Outlook.Items

Private Sub Application_Startup()
Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
  Set olApp = Outlook.Application
  Set objNS = olApp.GetNamespace("MAPI")
  Set myOlItems = objNS.GetDefaultFolder(olFolderInbox).Items
End Sub

Private Sub myOlItems_ItemAdd(ByVal item As Object)

Dim Msg As Outlook.MailItem
Dim Title As String
Dim Body As String
Dim Message As String

  Set Msg = item

Title = Msg.Subject
Body = Msg.Body

TargetURL = "https://api.pushbullet.com/v2/pushes"


Set HttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
HttpReq.Option(4) = 13056
HttpReq.Open "POST", TargetURL, False
HttpReq.SetCredentials "user", "password", 0

HttpReq.setRequestHeader "Authorization", "Bearer myAPI"
HttpReq.setRequestHeader "Content-Type", "application/json"


Message = "{""channel_tag"": ""myChannel"", ""type"": ""note"",  ""title"": " & _
  vbDoubleQuote & Title & vbDoubleQuote & ", ""body"": " & _
  vbDoubleQuote & Body & vbDoubleQuote & "}"
  HttpReq.Send (Message)

大家好,如果这个问题对你们来说太简单了,我很抱歉,但我对此一无所知。

上面是我的代码,在消息中我把标题放在代码中间来阅读我定义的内容:

 (""title"": " & _
  vbDoubleQuote & Title & vbDoubleQuote & ") as "Title = Msg.Subject". 

但仍然在推送没有任何消息的空消息,只是一个空消息。

我是否错误地定义了字符串?

【问题讨论】:

  • HttpReq.Send 行之前添加Debug.Print Message 并在即时窗口中查看它。它看起来正确吗?
  • 嗨@Comintern,感谢您的帮助,添加该行后,消息根本没有推送到我的 PushBullet。我注意到,每当我在“Set Msg = item”之后定义一些东西时,代码就会完全停止推送......

标签: vba outlook pushbullet


【解决方案1】:

您需要在续行之间关闭并重新打开您的字符串:

您可能还需要为 vbDoubleQuote 声明一个常量

Const vbDoubleQuote As String = """"

Message = "{""channel_tag"": ""myChannel"", ""type"": ""note""," & _
    """title"": " & _
    vbDoubleQuote & Title & vbDoubleQuote & ", ""body"": " & _
    vbDoubleQuote & Body & vbDoubleQuote & "}"

给予

{"channel_tag": "myChannel", "type": "note","title": "MYTITLE", "body": "MYBODY"}

【讨论】:

  • 嗯,@ComIntern 编辑了问题,这个答案可能不再适用?
  • 看起来 OP 正试图根据我的复制和粘贴在标记中添加硬换行符。这可能准确,也可能不准确。
  • 嗨@ThunderFrame,感谢您的帮助,但是将消息定义为您的代码确实有效。我正在尝试调用我在消息中调用的函数。而不是 "MYTITLE" ,我需要它来读取 "Msg.Subject" ,它是 "Outlook.MailItem" 的一个属性,它将读取电子邮件主题。谢谢你的帮助:)
  • 嗨@ThunderFrame,ComIntern 只是帮助将我的代码重新排列到正确的编码区域。 :)
  • 有人会建议我吗?我仍在研究这件事,并没有提出任何相关原因导致它无法正常工作......在此先感谢各位
猜你喜欢
  • 2014-08-25
  • 1970-01-01
  • 2014-02-27
  • 1970-01-01
  • 2017-03-20
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
相关资源
最近更新 更多