Как создать строки, содержащие двойные кавычки в формулах Excel?
Как я могу построить следующую строку в Формуле Excel:
Морис "Ракета" Ричард
Если я использую одинарные кавычки, это тривиально = "Maurice 'The Rocket' Richard"
но как насчет двойных кавычек?
12 ответов
кроме того, вы можете использовать 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 выложил.
использовать 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"
есть другой способ, хотя больше для "как я могу построить следующую строку в Формуле Excel: "Морис" ракета "Ричард"", чем " как создать строки, содержащие двойные кавычки в формулах Excel? ", который просто использовать две одинарные кавычки:
слева-Калибр, вырезанный из листа Excel, а справа-обрезок из окна VBA. На мой взгляд, спасаясь как упомянул @YonahW выигрывает руки вниз но два один котировки не больше, чем два двойника, и разница разумно очевидна в VBA без дополнительных нажатий клавиш, в то время как потенциально не заметна в электронной таблице.
объединения "
как ячейка ceparate:
A | B | C | D
1 " | text | " | =CONCATENATE(A1; B1; C1);
D1 displays "text"