Я хочу вставить оператор if в ячейку через vba, который включает двойные кавычки.
Вот мой код:
Worksheets("Sheet1").Range("A1").Value = "=IF(Sheet1!B1=0,"",Sheet1!B1)"
Из-за двойных кавычек у меня возникают проблемы со вставкой строки. Как мне обрабатывать двойные кавычки?
excel
vba
double-quotes
пользователь793468
источник
источник
Ответы:
Я считаю, что самый простой способ - это удвоить кавычки, чтобы обработать цитату.
Некоторым нравится использовать CHR (34) *:
* Примечание: CHAR () используется в качестве формулы ячейки Excel, например, для записи в ячейке «= CHAR (34)», но для кода VBA вы используете функцию CHR ().
источник
Другой способ - создать строку с временным замещающим символом. Затем вы можете использовать REPLACE, чтобы заменить каждый временный символ на двойные кавычки. Я использую тильду как временный замещающий символ.
Вот пример из проекта, над которым я работал. Это небольшая служебная программа для восстановления очень сложной формулы, если / когда на ячейку случайно наступят. Это сложная формула для ввода в ячейку, но эта небольшая утилита исправляет ее мгновенно.
На самом деле это простой трюк программирования, но он позволяет довольно легко вводить формулу в код VBA.
источник
Все двойные кавычки внутри двойных кавычек, которые окружают строку, должны быть изменены вдвое. В качестве примера у меня была одна из строк файла json: "delivery": "Standard". В редакторе Vba я изменил ее на "" "delivery" ":" "Standard" "", и все работает правильно. Если вам нужно вставить много похожих строк, мое предложение сначала вставьте их все между "", затем с помощью редактора VBA замените "внутри" на "". Если вы сделаете ошибку, редактор VBA покажет эту строку красным, и вы исправите эта ошибка.
источник
Я предпочитаю ответ tabSF. применяя то же самое к вашему ответу. вот мой подход
источник
Я написал небольшую процедуру, которая копирует формулу из ячейки в буфер обмена, которую можно легко вставить в Visual Basic Editor.
Первоначально он размещен в разделе Vault на форуме Chandoo.org .
источник