Як я можу побудувати наступний рядок у формулі Excel:
Моріс "Ракета" Річарда
Якщо я використовую одинарні лапки, це тривіально = "Maurice 'The Rocket' Richard"
але як щодо подвійних лапок?
Як я можу побудувати наступний рядок у формулі Excel:
Моріс "Ракета" Річарда
Якщо я використовую одинарні лапки, це тривіально = "Maurice 'The Rocket' Richard"
але як щодо подвійних лапок?
Відповіді:
Крім того, ви можете використовувати CHAR
функцію:
= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"
&
з подвійною цитатою безпосередньо перед або безпосередньо після того, як амперсанд не працює, використовуючи метод подвійної подвійної цитати.
Три подвійні лапки: " " " x " " "
= "x"
Excel автоматично зміниться на одну подвійну цитату. наприклад:
=CONCATENATE("""x"""," hi")
= "х" привіт
Я використовую для цього функцію (якщо в робочій книжці вже є VBA).
Function Quote(inputText As String) As String
Quote = Chr(34) & inputText & Chr(34)
End Function
Це з книги Сью Мошер "Програмування Microsoft Outlook". Тоді ваша формула буде:
="Maurice "&Quote("Rocket")&" Richard"
Це схоже на те, що розмістив Дейв ДуПлантіс .
Якщо вам потрібно зробити це за допомогою JSON:
=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")
чи буде ця робота для використання макросів .Formula = "=THEFORMULAFUNCTION("STUFF")"
так, як це було б: чи буде ця робота для використання макросів.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"
Повернення порожнього або нульового рядка (наприклад, ""
щоб зробити клітинку порожньою) є звичайною практикою у формулі робочого аркуша, але відтворення цієї опції при вставці формули через властивість 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(,)
заміні старого ""
способу доставки порожнього рядка, ви можете отримати , щоб припинити використання Абака , щоб визначити , чи є у вас правильне кількість лапок у формулі рядку.
Функція VBA
1) .ormula = "=" "THEFORMULAFUNCTION" "& (CHAR (34) &" "STUFF" "& CHAR (34))"
2) .ormula = "THEFORMULAFUNCTION" "STUFF" ""
Перший метод використовує vba для запису формули в комірку, в результаті якої обчислюється значення:
THEFORMULAFUNCTION "STUFF"
Другий метод використовує vba для запису рядка в комірку, що призводить до значення:
THEFORMULAFUNCTION "STUFF"
Результат Excel / Формула
1) = "THEFORMULAFUNCTION" & (CHAR (34) & "STUFF" & CHAR (34))
2) ІНФОРМАЦІЯ ФУНФУНКЦІЇ
="Maurice "&"""TheRocker"""&" Richard"
Є ще один спосіб, хоча більше для "Як я можу побудувати наступний рядок у формулі Excel:" Моріс "Ракета" Річард "", ніж "Як створити рядки, що містять подвійні лапки у формулах Excel?", Який просто використовувати дві одиничні цитати:
Зліва - калібр, який знімається з робочого листа Excel, а праворуч - знімок з вікна VBA. На мій погляд, втеча, як згадує @YonahW, виграє "руки вниз", але дві одиничні котирування не більше типізації, ніж два парні, і різниця очевидно очевидна в VBA без додаткових натискань клавіш, потенційно, не помітних у таблиці.
""
можливо, це просто тому, що я маю Mac Excel 2011