Распознать и обработать кавычки ("")

Я пытаюсь изменить каждую кавычку (") в 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) вместо """".

Другие символы, такие как «А», работают.

Помогло бы предоставить образец типа текста, с которым вы имеете дело. Возможно, «кавычки» в вашем тексте — это не Chr(34), а какие-то другие символы?

Tim Williams 15.04.2024 17:41

Это работает для меня. Может быть, есть что-то с обработаннымTextC

Black cat 15.04.2024 17:42

Возможно, моего объяснения было недостаточно. Поэтому немного изменил вопрос.

Ainsof26 15.04.2024 18:53

Не уверен, что это полная проблема, но в образце цитаты не используются прямые кавычки chr(34), а используются chr(147) и chr(148).

Warcupine 15.04.2024 19:14

Chr(147) и Chr(148) тоже не работали. :'(

Ainsof26 15.04.2024 19:29

Переберите каждый символ строки и посмотрите, что такое символ и его значение ascii. В данном примере он работает так, как задумано для меня.

Warcupine 15.04.2024 19:33
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
6
82
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это может не иметь смысла, но 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

Вы заметите разницу в коде, который я разместил. Кавычки и то, что в предложении, не совпадают.

ChrW(8221) решил проблему. Но спасибо за ваше объяснение.

Ainsof26 15.04.2024 20:07

Excel не виноват, что он не распознает "(U+0022) как (U+201C), это потому, что это разные символы. Никаких «непечатаемых персонажей» в игре тоже нет.

GSerg 15.04.2024 20:35

Другие вопросы по теме