首页 > 解决方案 > 另一个字符串变量中的单引号内的字符串变量不扩展 - VBA

问题描述

我正在尝试在 VBA 中构建一个相当复杂的 URL 字符串,并且我遇到了正确转义所有内容的麻烦。我设法让 URL 工作,但现在我试图“可变”重要部分并且无法理解问题(VBA 也没有完全给出详细的错误)。

这是一个有效和无效的示例 URL:

Dim URL As STring, Client As String
Client = "AClientName"
URL = "http://URL?filter={'mode':'cli','client':'AClientName'}" ' This Works
URL = "http://URL?filter={'mode':'cli','client':' & CLIENT & '}" ' This Fails to Open

标签: vbastringvariables

解决方案


您只是缺少围绕变量的关闭和打开引号。

如果 you debug.print,您可以看到它将您的&and解释Client为字符串的另一部分,而不是将其连接为变量。

在:

Debug.Print "http://URL?filter={'mode':'cli','client':'AClientName'}" 

出去:

http://URL?filter={'mode':'cli','client':'AClientName'}

这是有效的,因为不需要转义字符串或连接。


您可以在此处看到& CLIENT &它们是字符串的一部分。

在:

Debug.Print "http://URL?filter={'mode':'cli','client':' & CLIENT & '}"

出去:

http://URL?filter={'mode':'cli','client':' & CLIENT & '}


要使用变量获取正确的字符串,请使用此。

在:

Debug.Print "http://URL?filter={'mode':'cli','client':'" & Client & "'}"

出去:

http://URL?filter={'mode':'cli','client':'AClientName'}

推荐阅读