vba - 另一个字符串变量中的单引号内的字符串变量不扩展 - 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
解决方案
您只是缺少围绕变量的关闭和打开引号。
如果 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'}
推荐阅读
- python - 使用 msvcrt.getwch() 时,Tkinter config() 不会更新 while 循环中的标签
- visual-studio - 有没有办法避免在我们关闭另一个文件时自动聚焦在打开的文件上的工作区?-- VisualStudio 代码 v1.46.0
- javascript - 如果我检测到窗口模糊并暂停视频,VIMEO 嵌入播放器的行为会很奇怪
- erlang - Erlang消息发送和接收与多个进程
- hadoop - Flume Twitter 流问题
- javascript - 几秒钟后隐藏项目
- javascript - Jest 测试中非默认类导出的模拟方法
- r - How can I export plots within a list in R?
- web-scraping - 刮擦属性。BeautifulSoup 锚点内的文本
- flutter - 在 initState Flutter 中获取 await 未来数据给出空值