Как создать строки, содержащие двойные кавычки в формулах Excel?

Как я могу построить следующую строку в Формуле Excel:

Морис "Ракета" Ричард

Если я использую одинарные кавычки, это тривиально = "Maurice 'The Rocket' Richard" но как насчет двойных кавычек?

12 ответов


вы пытались убежать с двойной кавычкой?

= "Maurice ""The Rocket"" Richard"

кроме того, вы можете использовать CHAR функция:

= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"

три двойные кавычки: " " " x " " " = "x" Excel автоматически изменится на одну двойную кавычку. например:

=CONCATENATE("""x"""," hi")  

= "x" привет


Я использую функцию для этого (если книга уже есть в VBA).

Function Quote(inputText As String) As String
  Quote = Chr(34) & inputText & Chr(34)
End Function

это из книги Сью Мошер "Программирование Microsoft Outlook". Тогда ваша формула будет:

="Maurice "&Quote("Rocket")&" Richard"

Это похоже на то, что Дейв DuPlantis выложил.


в случае, если вам нужно сделать это с JSON:

=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")

использовать chr(34) Код: Джо = "Привет", & Chr (34) & " Джо " & Chr (34) И activecell.Value = Joe

результат: Привет, "Джо"


будет ли это работать для макросов с помощью .Formula = "=THEFORMULAFUNCTION("STUFF")" так было бы: будет ли это работать для макросов с помощью .Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"


возврат пустой строки или строки нулевой длины (например,"") сделать ячейку пустой-обычная практика в Формуле листа, но воссоздание этой опции при вставке формулы через листа текст смогите произвести такой же результат без использования кавычек.

'formula to insert into C1 - =IF(A1<>"", B1, "")
range("C1").formula = "=IF(A1<>"""", B1, """")"         '<~quote chars doubled up
range("C1").formula = "=IF(A1<>TEXT(,), B1, TEXT(,))"   '<~with TEXT(,) instead

на мой взгляд, используя TEXT(,) на месте "" очищает даже простую формулу, подобную приведенной выше. Преимущества становятся все более значимыми при использовании в более сложных формулах, таких как практика добавления пустой строки в VLOOKUP чтобы избежать возврата нуля в ячейку, когда поиск приводит к пустому или возвращению пустой строки при отсутствии совпадения с функции iferror.

'formula to insert into D1 - =IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&"", "")
range("D1").formula = "=IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&"""", """")"
range("D1").formula = "=IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&TEXT(,), TEXT(,))"

С TEXT(,) замена старого "" метод доставки пустой строки, вы можете прекратить использовать счеты, чтобы определить, есть ли у вас правильное количество символов цитаты в строке формулы.


функция VBA

1) .Формула = " = ""THEFORMULAFUNCTION "" &(CHAR (34) & "STUFF "" & CHAR(34))"

2) .Formula = "THEFORMULAFUNCTION ""STUFF"""

первый метод использует vba для записи формулы в ячейку, которая приводит к вычисленному значению:

 THEFORMULAFUNCTION "STUFF"

второй метод использует vba для записи строки в ячейку, которая приводит к значению:

 THEFORMULAFUNCTION "STUFF"

Excel Результат / Формула

1) = "THEFORMULAFUNCTION" &(CHAR(34) & "STUFF" & CHAR (34))

2) THEFORMULAFUNCTION "STUFF"


="Maurice "&"""TheRocker"""&" Richard"

есть другой способ, хотя больше для "как я могу построить следующую строку в Формуле Excel: "Морис" ракета "Ричард"", чем " как создать строки, содержащие двойные кавычки в формулах Excel? ", который просто использовать две одинарные кавычки:

SO216616 example

слева-Калибр, вырезанный из листа Excel, а справа-обрезок из окна VBA. На мой взгляд, спасаясь как упомянул @YonahW выигрывает руки вниз но два один котировки не больше, чем два двойника, и разница разумно очевидна в VBA без дополнительных нажатий клавиш, в то время как потенциально не заметна в электронной таблице.


объединения " как ячейка ceparate:

    A |   B   | C | D
1   " | text  | " | =CONCATENATE(A1; B1; C1);

D1 displays "text"