vba код символа кавычки
Как поместить двойные кавычки в строку в vba?
Я хочу вставить оператор if в ячейку через vba, который включает двойные кавычки.
из-за двойных кавычек у меня возникают проблемы при вставке строки. Как обрабатывать двойные кавычки?
6 ответов
Я считаю, что самый простой способ-удвоить котировки для обработки цитаты.
некоторые люди любят использовать CHR (34)*:
* Примечание: CHAR () используется в качестве формулы ячейки Excel, например, запись «=CHAR (34)» в ячейке, но для кода VBA вы используете функцию CHR ().
другой обходной путь-построить строку с временным символом замены. Затем вы можете использовать REPLACE для изменения каждого символа temp на двойную кавычку. Я использую Тильду в качестве временной замены персонажа.
вот пример из проекта, над которым я работал. Это небольшая утилита для восстановления очень сложной формулы, если / когда ячейка случайно наступила. Это сложная формула для входа в ячейку, но эта небольшая утилита исправляет это мгновенно.
это действительно просто простой трюк программирования, но это делает ввод формулы в ваш код VBA довольно легким.
все двойные кавычки внутри двойных кавычек, которые окружают строку, должны быть изменены в два раза. В качестве примера у меня была одна из строк файла json: «delivery»: «Standard», В Редакторе Vba я изменил его на «»»delivery»: «» Standard»», » и все работает правильно. Если вам нужно вставить много похожих строк, мое предложение сначала вставьте их все Между «», а затем с помощью редактора VBA замените «внутри » на»». Если вы сделаете ошибку, редактор VBA покажет эту строку красным цветом, и вы исправите это ошибка.
Я написал небольшую процедуру, которая копирует формулу из ячейки в буфер обмена, которую можно легко вставить в редактор Visual Basic.
первоначально опубликовано Chandoo.org форумы’хранилище.
на текст можно воспроизвести пустую строку (или нулевой длины) без использования кавычек.
Кавычки в строковых выражениях
В ситуациях, когда необходимо создать строки, которые необходимо сконструировать, может потребоваться встраить строку в другую строку или переменную строки в строку. Ситуации, в которых может потребоваться вложение одной строки в другую, включают следующие:
При указании критериев для совокупных функций домена.
При указании критериев для методов Find.
При указании критериев для свойства Filter или ServerFilter формы.
При создании SQL строк.
Во всех этих случаях Access должен передать строку в движок базы данных Access. Например, при указании аргумента критериев для агрегированной функции домена Access должен оценить все переменные, примитивировать их в строку, а затем передать всю строку в движок базы данных Access.
Если встраить числовую переменную, Access оценит переменную и просто соберет значение в строку. Однако если переменная является текстовой строкой, строка критериев будет содержать строку в строке. Строка в строке должна быть определена делемитерами строки. В противном случае движок базы данных Access не сможет определить, какая часть строки является тем значением, которое необходимо использовать.
Делемитеры строк фактически не являются частью самой переменной, но они должны быть включены в строку в аргументе критериев. Существует три различных способа построения строки в аргументе критериев. Каждый метод приводит к аргументу критериев, который выглядит как один из следующих примеров.
Включаем одиночные кавычка
Когда strName переменная оценивается и соедается в строку критериев, строка критериев становится:
Этот синтаксис не позволяет использовать апострофы (‘) в значении самой переменной. Если значение переменной строки включает апостроф, access создает ошибку во время работы. Если переменная может представлять значения, содержащие апострофы, рассмотрите возможность использования одной из других форм синтаксиса, рассмотренных в следующих разделах.
Включаем двойные кавычка
Следует включить двойные кавычка в аргумент критериев таким образом, чтобы при оценке значения переменной она была заключена в кавычках. В строке для представления одного набора двойных кавычков необходимо использовать два набора двойных кавычков. Аргумент критериев можно построить, как в следующем примере:
Когда переменная оценивается и согласуется с аргументом критериев, каждый набор двух двойных кавычках заменяется одной strName одной кавычками. Аргумент критериев становится:
Этот синтаксис может показаться более сложным, чем синтаксис одной метки кавычка, но он позволяет встраивать строку, содержаную апостроф в аргументе критериев. Он также позволяет вложению одной или нескольких строк в встроенную строку.
Включаем переменную, представляющую кавычка
Когда переменные оцениваются и согласуются с аргументом критериев, аргумент критериев становится:
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
VBA Excel. Работа с текстом (функции)
Работа с текстом в коде VBA Excel. Функции, оператор & и другие ключевые слова для работы с текстом. Примеры использования некоторых функций и ключевых слов.
Функции для работы с текстом
Основные функции для работы с текстом в VBA Excel:
Функция | Описание |
---|---|
Asc(строка) | Возвращает числовой код символа, соответствующий первому символу строки. Например: MsgBox Asc(“/Stop”). Ответ: 47, что соответствует символу «/». |
Chr(код символа) | Возвращает строковый символ по указанному коду. Например: MsgBox Chr(47). Ответ: «/». |
Format(Expression, [FormatExpression], [FirstDayOfWeek], [FirstWeekOfYear]) | Преобразует число, дату, время в строку (тип данных Variant (String)), отформатированную в соответствии с инструкциями, включенными в выражение формата. Подробнее… |
InStr([начало], строка1, строка2, [сравнение]) | Возвращает порядковый номер символа, соответствующий первому вхождению одной строки (строка2) в другую (строка1) с начала строки. Подробнее… |
InstrRev(строка1, строка2, [начало, [сравнение]]) | Возвращает порядковый номер символа, соответствующий первому вхождению одной строки (строка2) в другую (строка1) с конца строки. |
Join(SourceArray,[Delimiter]) | Возвращает строку, созданную путем объединения нескольких подстрок из массива. Подробнее… |
LCase(строка) | Преобразует буквенные символы строки в нижний регистр. |
Left(строка, длина) | Возвращает левую часть строки с заданным количеством символов. Подробнее… |
Len(строка) | Возвращает число символов, содержащихся в строке. |
LTrim(строка) | Возвращает строку без начальных пробелов (слева). Подробнее… |
Mid(строка, начало, [длина]) | Возвращает часть строки с заданным количеством символов, начиная с указанного символа (по номеру). Подробнее… |
Replace(expression, find, replace, [start], [count], [compare]) | Возвращает строку, полученную в результате замены одной подстроки в исходном строковом выражении другой подстрокой указанное количество раз. Подробнее… |
Right(строка, длина) | Возвращает правую часть строки с заданным количеством символов. Подробнее… |
RTrim(строка) | Возвращает строку без конечных пробелов (справа). Подробнее… |
Space(число) | Возвращает строку, состоящую из указанного числа пробелов. Подробнее… |
Split(Expression,[Delimiter],[Limit],[Compare]) | Возвращает одномерный массив подстрок, извлеченных из указанной строки с разделителями. Подробнее… |
StrComp(строка1, строка2, [сравнение]) | Возвращает числовое значение Variant (Integer), показывающее результат сравнения двух строк. Подробнее… |
StrConv(string, conversion) | Изменяет регистр символов исходной строки в соответствии с заданным параметром «conversion». Подробнее… |
String(число, символ) | Возвращает строку, состоящую из указанного числа символов. В выражении «символ» может быть указан кодом символа или строкой, первый символ которой будет использован в качестве параметра «символ». Подробнее… |
StrReverse(строка) | Возвращает строку с обратным порядком следования знаков по сравнению с исходной строкой. Подробнее… |
Trim(строка) | Возвращает строку без начальных (слева) и конечных (справа) пробелов. Подробнее… |
UCase(строка) | Преобразует буквенные символы строки в верхний регистр. |
WorksheetFunction.Trim(строка) | Функция рабочего листа, которая удаляет все лишние пробелы (начальные, конечные и внутренние), оставляя внутри строки одиночные пробелы. |
В таблице перечислены основные функции VBA Excel для работы с текстом. С полным списком всевозможных функций вы можете ознакомиться на сайте разработчика.
Ключевые слова для работы с текстом
Ключевое слово | Описание |
---|---|
& | Оператор & объединяет два выражения (результат = выражение1 & выражение2). Если выражение не является строкой, оно преобразуется в Variant (String), и результат возвращает значение Variant (String). Если оба выражения возвращают строку, результат возвращает значение String. |
vbCrLf | Константа vbCrLf сочетает в себе возврат каретки и перевод строки (Chr(13) + Chr(10)) и переносит последующий текст на новую строку (результат = строка1 & vbCrLf & строка2). |
vbNewLine | Константа vbNewLine в VBA Excel аналогична константе vbCrLf, также сочетает в себе возврат каретки и перевод строки (Chr(13) + Chr(10)) и переносит текст на новую строку (результат = строка1 & vbNewLine & строка2). |
Примеры
Вывод прямых парных кавычек
Прямые парные кавычки в VBA Excel являются спецсимволами и вывести их, заключив в самих себя или в одинарные кавычки (апострофы), невозможно. Для этого подойдет функция Chr:
Специальные символы в коде (Visual Basic)
Иногда в коде необходимо использовать специальные символы, то есть символы, не являющиеся алфавитными или числовыми. Знаки пунктуации и специальные символы в Visual Basic кодировке имеют различные варианты использования, от организации текста программы до определения задач, выполняемых компилятором или скомпилированной программой. Эти знаки не определяют операции, подлежащие выполнению.
Круглые скобки
Разделители
Разделители выполняют свои имена: они разделяют разделы кода. В Visual Basic символ разделителя является двоеточием ( : ). Используйте разделители, если требуется включить несколько операторов в одну строку, а не отдельные строки. Это экономит пространство и повышает удобочитаемость кода. В следующем примере показаны три инструкции, разделенные двоеточиями.
Символ двоеточия ( : ) также используется для обозначения метки оператора. Дополнительные сведения см. в разделе инструкции. Метки.
Объединение
Используйте & оператор для объединения или связывания строк. Не путайте его с + оператором, который добавляет вместе числовые значения. При использовании + оператора для сцепления с числовыми значениями можно получить неверные результаты. В следующем примере это показано.
После выполнения предыдущего кода значение resultA равно 21,01, а значение resultB равно «10,0111».
Операторы доступа к членам
Точка (.) Станции
Восклицательный знак (!) Станции
«Dictionary access returns » & hD!»X»)
! Символ также используется в качестве Single символа типа.
Как поставить двойные кавычки в строку в vba?
Я хочу вставить оператор if в ячейку через vba, который включает двойные кавычки.
Из-за двойных кавычек у меня возникают проблемы со вставкой строки. Как мне обрабатывать двойные кавычки?
4 ответа
Некоторым нравится использовать CHR (34) *:
* Примечание: CHAR () используется как формула ячейки Excel, например напишите «= CHAR (34)» в ячейке, но для кода VBA вы используете функцию CHR ().
Вот пример из проекта, над которым я работал. Это небольшая служебная программа для восстановления очень сложной формулы, если / когда на ячейку случайно наступят. Это сложная формула для ввода в ячейку, но эта небольшая утилита исправляет ее мгновенно.
На самом деле это простой трюк программирования, но он позволяет довольно легко ввести формулу в код VBA.
Все двойные кавычки внутри двойных кавычек, которые окружают строку, должны быть изменены вдвое. В качестве примера у меня была одна из строк файла json: «delivery»: «Standard». В редакторе Vba я изменил ее на «» «delivery» «:» «Standard» «», и все работает правильно. Если вам нужно вставить много похожих строк, мое предложение сначала вставьте их все между «», затем с помощью редактора VBA замените «внутри» на «». Если вы сделаете ошибку, редактор VBA покажет эту строку красным, и вы исправите эта ошибка.
Я написал небольшую процедуру, которая копирует формулу из ячейки в буфер обмена, которую можно легко вставить в редактор Visual Basic.