使用 VBA 将包含引号的字符串发送到文件

Sending a string that contains quotations to a file with VBA

我正在尝试使用 VBA 构建一个 .jet 文件,但是当我尝试追加时,出现了两个可能的问题。要么它包括所有双引号,包括双双引号,就像您通常在 msgbox 中所做的那样,或者如果我删除双双引号,字符串将无法工作,因为引号的第一个实例终止了字符串。下面是我的代码示例(注意,主子中的 commented/indented 区域是我尝试过但没有成功的各种可能性:

Sheets("Sheet1").Range("A1").Select
Dim MyStr As String
  'MyStr = "{" & Chr(34) & "myid" & Chr(34) & ":345," & Chr(34) & "content" & Chr(34) & ":["
  'MyStr = "{""myid"":345,""content"":["

  'appendToFile ("{""myid"":345,""content"":[")
  'appendToFile (MyStr)
End Sub


Sub appendToFile(MyStr As String)
Dim fileName As String
 fileName = "MyFile.jet"
Open Application.ActiveWorkbook.Path & "\" & fileName For Append As #1
    Write #1, MyStr
Close #1
End Sub

如果您想避免在 .jet 中出现额外的引号,您可以 append 使用 Print # 语句,而不是 Write # 语句。

Print # 语句不同,Write # 语句在项目之间插入逗号,并在字符串 周围插入 引号 文件。

例如,这段代码:

Option Explicit
Sub ject()
Dim MyStr As String
  
  MyStr = "{" & Chr(34) & "myid" & Chr(34) & ":345," & Chr(34) & "content" & Chr(34) & ":["
  
  appendToFile (MyStr)
End Sub


Sub appendToFile(MyStr As String)
Dim fileName As String
 fileName = "MyFile.jet"
Open Application.ActiveWorkbook.path & "\" & fileName For Append As #1
    Print #1,
Close #1
End Sub

将导致:

{"myid":345,"content":[

使用文本编辑器打开 .jet 文件时。

这是你想要的吗?