技术要点:
在VBA中,为了表示字符串,首先我们需要用两个引号把字符串引起来。例如 "abc", VBA编译器把它解释为字符串abc。而当您需要表示一个单引号 " 的时候,如果只用三个引号 """,VBA的编译器会无法解析辨认中间的引号是一个正常的字符还是一个特殊字符(如果是特殊字符,编译器会认为和左右的两个引号之间有关系)
为了解决这种情况,VBA中使用转义字符(其他语言中也有这个概念)对特殊字符进行转义。在 """" 中:第一个和第四个引号高速编译器中间是字符串,第二个引号是一个转义字符,表示后面的第三个 " 不是一个特殊字符,而是一个普通的引号!所以"""" 经过VBA编译器编译后的输出是一个普通的双引号 "
实例代码:
Private Sub Command0_Click()
Dim xtpf, cxph, fs, d, v As String
Dim str4 As String
xtpf = CurrentProject.Path'当前路径
cxph = Left(xtpf, 3)
Set fs = CreateObject("Scripting.FileSystemObject")
Set d = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(cxph)))
v = Hex(d.SerialNumber)
Dim RetVal
str4 = """"
Dim strMDB As String
Shell str4 & SysCmd(acSysCmdAccessDir) & "msaccess.exe" & str4 & " " & str4 & xtpf & "\sjch.mdb" & str4 & " /wrkgrp " & str4 & xtpf & "\sjch.mdg" & str4 & " " & "/User qbc" & " " & "/pwd" & " " & "", 2
End Sub
说明:sjch.mdg是工作组信息文件,其实就是sjch.mdw,只不过改了后缀而已
以上问题的解决感谢微软工程师Billy Yao 提供帮助!