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



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




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




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

678   12  

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) Код: Joe = "Привет", & Chr (34) & " Joe " & Chr (34) Активная ячейка.Значение = Джо

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

будет ли это работать для макросов с помощью .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 чтобы избежать возврата нуля в ячейку, когда поиск приводит к пустой или возвращающей пустую строку на no-match с 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) .Формула = "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"

Comments

    Ничего не найдено.