设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 213|回复: 3

[模块/函数] 【新手入门】之二十八:浅谈“转义字符”——从双引号谈起

[复制链接]
发表于 2020-10-17 23:55:54 | 显示全部楼层 |阅读模式
其实,VBA里是没有“转义字符”这个说法的,但我仍然倾向于这么称呼它。我们先来看看这个:
  1. Sub test()
  2.     Dim str As String
  3.     str = ""
  4.     Debug.Print str
  5. End Sub
复制代码
打开立即窗体,我们是看不到任何提示的。因为这是一个空字符串。如果我们想要一个双引号,怎么办?这时候可能有童鞋举手了:“我知道,我知道,把双引号改成单引号就好了。”
  1. Sub test()
  2.     Dim str As String
  3.     str = "'"
  4.     Debug.Print str
  5. End Sub
复制代码
这个变通的处理方式确实可以解决大部分问题。但我还是想说一句,我要的是双引号,而不是单引号。这时候可能有人会问了,把单引号改成双引号行不行?听起来似乎可行,但实际上。。。。无法行得通。因为双引号是成对出现的。因此不存在:
  1. Sub test()
  2.     Dim str As String
  3.     str = """
  4.     Debug.Print str
  5. End Sub
复制代码
事实上,当你输入一个双引号时,系统会给你自动补全成一对。也就是这个样子:
  1. Sub test()
  2.     Dim str As String
  3.     str = """"
  4.     Debug.Print str
  5. End Sub
复制代码
这时候,我们可以把第一个双引号是起始,第二个视为转义字符,第三个是要显示的字符,第四个是结束。很难理解,是么?我们看下一个例子:
  1. Sub test()
  2.     Dim str As String
  3.     str = "这时候他说:""我就是一朵梨花压海棠?玉树临风胜潘安,一树梨bai花压海棠的小淫虫周伯通。""。"
  4.     Debug.Print str
  5. End Sub
复制代码

是不是安排得明明白白了?最后,我们来实战一下:
WinRAR解压带密码的文件命令行语法是这样的,我们可以用shell命令来执行它【注意参数之间的空格,为避免出错,建议复制后再处理。】:
WinRAR路径 x -p密码 -o+压缩包路径 *.* 解压后文件夹
但对于解压包文件和解压后文件夹需要加上双引号,例如:
  1. Shell C:\Program Files\WinRAR\WinRAR.exe x -pvAwLWg -o+ "E:\testDocument\database\京东运营日报\京东运营日报\淘米优vAwLWg.zip" *.* "E:\testDocument\database\京东运营日报\京东运营日报", vbHide
复制代码

假定,WinRAR路径为strWinRARPath,zip路径为strZipPath,解压后的文件夹为strZippedFold,解压密码为strPassword。请写出对应的语法:
游客,如果您要查看本帖隐藏内容请回复

赶紧回复下,看看你有没有写对?
另一个案例,也可以参考几天前的帖子:
http://www.office-cn.net/thread-126528-1-1.html
如果觉得不过瘾,还可以参考:
【Access小品】斗天斗地斗引号---Rar压缩及解压文件示例
以下为早期的新手入门系列:
更早之前的系列帖子



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点击这里给我发消息

发表于 2020-10-18 00:03:49 来自手机 | 显示全部楼层
谢谢分享,先抢个沙发
发表于 2020-10-19 14:56:15 | 显示全部楼层
1111
回复

使用道具 举报

发表于 2020-10-20 16:22:56 | 显示全部楼层
以前遇到过这种困惑,温习一下,谢谢分享!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2020-12-5 02:00 , Processed in 0.080990 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表