VBA 无法识别和处理引号 (")

问题描述 投票:0回答:1

我是一个 VBA 初学者,正在尝试编写一个 VBA 代码,找到 A1 中的每个 (") 引号并将其更改为 (-),然后在 B1 中打印结果。

这是我尝试过的代码:

Sub ReplaceQuotes()
    Dim inputText As String
    Dim outputText As String
    
    inputText = Range("A1").Value
    
    outputText = Replace(inputText, """", "-")
    
    Range("B1").Value = outputText
End Sub

示例文本为:

有句流行的谚语说:“当老人播种时,社会就会变得伟大 他们永远不会坐在树荫下。”当我们处理掉 放射性废物,我们不会说,“谁在乎这是否会毒害人们 几个世纪之后?”同样,我们很少有人关心气候 改变或污染只是为了今天活着的人们。

结果还是一样,没有任何改变。 尝试使用 Chr(43) 而不是“”””,但仍然失败。

有趣的是,像“A”这样的其他角色似乎工作得很好。

我做错了什么吗?

excel vba
1个回答
0
投票

这可能没有意义,但 Excel 不会将句子中的双引号识别为实际的双引号。大多数时候,当您从其他来源复制内容并粘贴它们时,Excel 不会将它们视为传统字符,它们被称为非打印字符。所以我只是复制了句子中的一个引号并将其直接放入VBA中。

Sub ReplaceQuotes()
    Dim inputText As String
    Dim outputText As String

    inputText = Range("A1").Value

    outputText = Replace(inputText, "“", "-")

    Range("B1").Value = outputText

End Sub

您会注意到我提供的代码中的差异。引号和句子中的引号不一样。

© www.soinside.com 2019 - 2024. All rights reserved.