2011-12-20 2 views
7

Пример кода:Как добавить двойные кавычки в строке буквального

Dim a As String 
a = 1234,5678,9123 

Я хочу добавить буквенные двойные кавычки переменной a

Ожидаемый выход:

a = "1234,5678,9123" 

Как я форматируйте строку, поэтому, когда я ее распечатываю, у нее есть двойные кавычки?

+0

Возможный дубликат [Escape double quote in VB string] (http://stackoverflow.com/questions/4835691/escape-double-quote-in-vb-string) – GSerg

+0

Это только в источниках VB? Или здесь что-то еще? Очевидный вопрос: почему вы не можете просто набрать это? Можете ли вы предоставить больше контекста - это код, который вам нужен для рефакторинга? Сколько случаев мы говорим здесь? Все переменные объявлены как «Dim a as string»? Какие еще существуют ограничения? –

+1

Возможный дубликат [Escape double quote in VB string] (https://stackoverflow.com/questions/4835691/escape-double-quote-in-vb-string) – DaveInCaz

ответ

22

Если вы хотите включить " в строке, поставки "" где вы хотите котировка появляться. Так что ваш пример должен читать ...

a = """1234,5678,9123""" 
6
a = """1234,5678,9123""" 

или

a= """" & a & """" 
+0

@MattWilko Это делает, если 'a' напечатан как строка согласно OP. Если, однако, они используют числовую переменную или литерал там, '+' должен быть '&' или значением, переданным в 'CStr()'. – Deanna

+0

@MattWilko Извините :) Я обновил ответ, чтобы использовать '&' в любом случае. – Deanna

14

текущие ответы правильны и справедливы, но иногда можно сделать следующие улучшения читаемости:

a = Chr$(34) & "1234,5678,9123" & Chr$(34) 
+1

Я не проголосовал, но это НЕ читается! Все ли разработчики должны знать весь набор кодов символов ASCII? Создайте константу и присвойте ей это значение; то просто используйте константу – UnhandledExcepSean

+3

Ну, я только сказал * может * - просто дать другой вариант OP.И я не сказал, что это лучшая практика. Вы можете найти набор символов ASCII [здесь] (http://www.asciitable.com/) - тогда вам не нужно его запоминать. –

+3

+1 Я вижу Chr (34) повсюду, не знаю, в чем проблема. – JimmyPena

-2

Я использовал метод Chr $ (34), как это:

Sub RunPython() 
    Dim scriptName As String 
    Dim stAppName As String 
    scriptName = ActiveWorkbook.Path & "\aprPlotter.py" 
    stAppName = "python.exe " & Chr$(34) & scriptName & Chr$(34) 
    Debug.Print stAppName 
    Call Shell(stAppName, vbHide) 
End Sub 

Я использовал тот же путь для питона сценария как книги Excel, чтобы сохранить его проще для пользователей. Я обезумел цитатами за 45 минут, прежде чем нашел эту тему. Когда пути выходят из активных рабочих мест (особенно с пробелами в Windows), я думаю, что это предпочтительный метод. Надеюсь, это поможет кому-то другому.

7

Чтобы Chr $ больше (34) читаем:

Dim quote as string 
quote = Chr$(34) 
a = quote & "1234,5678,9123" & quote 

Это делает его легче получить правильное количество "символов и везде читается

0


Нет необходимости добавлять какие-либо. сложные функции просто использовать следующий пример, чтобы вставить дважды в текстовом поле или богатом текстовое поле.

Dim dquot="""" 
TextBox1.AppendText("Hello " &dquot &"How are you ?" &quot) 

или

-
Dim dquot="""" 
RichTextBox1.AppendText("Hello " &dquot &"How are you ?" &quot) 
Смежные вопросы