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

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

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

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

Ответ 1

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

= "Maurice ""The Rocket"" Richard"

Ответ 2

В качестве альтернативы вы можете использовать функцию CHAR:

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

Ответ 3

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

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

= "x" hi

Ответ 4

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

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

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

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

Это похоже на то, что размещено Dave DuPlantis.

Ответ 5

Если вам нужно сделать это с помощью JSON:

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

Ответ 6

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

Результат:   Привет, "joe"

Ответ 7

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

Ответ 8

Возвращение пустой или нулевой строки (например, ""), чтобы сделать ячейку пустой, является обычной практикой в ​​формуле рабочего листа, но воссоздавая эту опцию при вставке формулы через Range.Formula или Свойство Range.FormulaR1C1 в VBA является громоздким из-за необходимости дублирования, вставлять символы двойной кавычки в строку с кавычками.

Настраиваемый рабочий лист Функция TEXT может выдавать тот же результат без использования кавычек.

'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(,) заменить старый метод "" доставки пустой строки, вы можете перестать использовать счеты, чтобы определить, есть ли у вас правильное количество символов кавычек в строке формулы.

Ответ 9

Функция VBA

1).Formula = "=" "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) ФУНКЦИОНАЛЬНАЯ ФУНКЦИЯ "СТУДИЯ"

Ответ 10

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

Ответ 11

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

SO216616 example

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

Ответ 12

Конкатенация " в виде кедратной клетки:

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

D1 displays "text"