【问题标题】:Sending a string that contains quotations to a file with VBA使用 VBA 将包含引号的字符串发送到文件
【发布时间】:2020-08-13 09:04:57
【问题描述】:

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

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

【问题讨论】:

  • 我看不到你在哪里显示你想要的结果。或者当您尝试各种尝试时附加操作发生了什么。
  • 好的,例如,当我追加时,它会在 MyFile.jet 中显示:“{”“myid”“:345”,“content”“:[”
  • 你想让它读什么?

标签: excel vba string append quotation-marks


【解决方案1】:

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

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 文件时。

这是你想要的吗?

【讨论】:

  • 是的!这正是我所需要的。有用!非常感谢。
  • 关于如何删除文件中最后一个字符的任何想法?例如,我想删除以 ...potato"]} 结尾的文本文件中的逗号,
  • @BrandonRedmond 很高兴为您提供帮助。由于我的回答似乎满足了您的问题,如果您能将其标记为已接受,我将不胜感激。您可以阅读What should I do when someone answers my question 了解更多信息。
  • @BrandonRedmond 有很多方法可以做到这一点,但不能在评论中回答。如果您遇到问题,请将其作为新问题发布。包括您为完成它所做的努力,以及足够的可用数据,以便有人可以重现您遇到的任何问题。可能有助于查看How to create a Minimal, Complete, and Verifiable example
猜你喜欢
  • 2012-11-07
  • 1970-01-01
  • 1970-01-01
  • 2011-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-03
  • 1970-01-01
相关资源
最近更新 更多