Vba excel строка в двойных кавычках

I want to insert an if statement in a cell through vba which includes double quotes.

Here is my code:

Worksheets("Sheet1").Range("A1").Value = "=IF(Sheet1!B1=0,"",Sheet1!B1)"

Due to double quotes I am having issues with inserting the string. How do I handle double quotes?

Andrei Konstantinov's user avatar

asked Jan 26, 2012 at 20:18

user793468's user avatar

user793468user793468

4,87823 gold badges80 silver badges126 bronze badges

2

I find the easiest way is to double up on the quotes to handle a quote.

Worksheets("Sheet1").Range("A1").Formula = "IF(Sheet1!A1=0,"""",Sheet1!A1)" 

Some people like to use CHR(34)*:

Worksheets("Sheet1").Range("A1").Formula = "IF(Sheet1!A1=0," & CHR(34) & CHR(34) & ",Sheet1!A1)" 

*Note: CHAR() is used as an Excel cell formula, e.g. writing «=CHAR(34)» in a cell, but for VBA code you use the CHR() function.

thomas's user avatar

answered Jan 26, 2012 at 20:21

Brain2000's user avatar

3

Another work-around is to construct a string with a temporary substitute character. Then you can use REPLACE to change each temp character to the double quote. I use tilde as the temporary substitute character.

Here is an example from a project I have been working on. This is a little utility routine to repair a very complicated formula if/when the cell gets stepped on accidentally. It is a difficult formula to enter into a cell, but this little utility fixes it instantly.

Sub RepairFormula()
Dim FormulaString As String

FormulaString = "=MID(CELL(~filename~,$A$1),FIND(~[~,CELL(~filename~,$A$1))+1,FIND(~]~, CELL(~filename~,$A$1))-FIND(~[~,CELL(~filename~,$A$1))-1)"
FormulaString = Replace(FormulaString, Chr(126), Chr(34)) 'this replaces every instance of the tilde with a double quote.
Range("WorkbookFileName").Formula = FormulaString

This is really just a simple programming trick, but it makes entering the formula in your VBA code pretty easy.

answered Feb 24, 2017 at 19:11

D Zeller's user avatar

D ZellerD Zeller

1811 silver badge2 bronze badges

All double quotes inside double quotes which suround the string must be changed doubled. As example I had one of json file strings : «delivery»: «Standard»,
In Vba Editor I changed it into «»»delivery»»: «»Standard»»,» and everythig works correctly. If you have to insert a lot of similar strings, my proposal first, insert them all between «» , then with VBA editor replace » inside into «». If you will do mistake, VBA editor shows this line in red and you will correct this error.

answered Jul 19, 2016 at 11:08

Sharunas Bielskis's user avatar

I have written a small routine which copies formula from a cell to clipboard which one can easily paste in Visual Basic Editor.

    Public Sub CopyExcelFormulaInVBAFormat()
        Dim strFormula As String
        Dim objDataObj As Object

        'Check that single cell is selected!
       If Selection.Cells.Count > 1 Then
            MsgBox "Select single cell only!", vbCritical
            Exit Sub
        End If

        'Check if we are not on a blank cell!
       If Len(ActiveCell.Formula) = 0 Then
            MsgBox "No Formula To Copy!", vbCritical
            Exit Sub
        End If

        'Add quotes as required in VBE
       strFormula = Chr(34) & Replace(ActiveCell.Formula, Chr(34), Chr(34) & Chr(34)) & Chr(34)

        'This is ClsID of MSFORMS Data Object
       Set objDataObj = CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        objDataObj.SetText strFormula, 1
        objDataObj.PutInClipboard
        MsgBox "VBA Format formula copied to Clipboard!", vbInformation

        Set objDataObj = Nothing

    End Sub

It is originally posted on Chandoo.org forums’ Vault Section.

answered Oct 20, 2017 at 4:53

shrivallabha.redij's user avatar

In case the comment by gicalle ever dies:

I prefer creating a global variable:

Public Const vbDoubleQuote As String = """" 'represents 1 double quote (")
Public Const vbSingleQuote As String = "'" 'represents 1 single quote (') 

and using it like so:

Shell "explorer.exe " & vbDoubleQuote & sPath & vbDoubleQuote, vbNormalFocus

Двойные кавычки и кавычки «ёлочки» в коде VBA Excel. Коды символов кавычек и ввод кавычек «ёлочек» в редакторе VBA Excel с клавиатуры. Примеры.

Двойные кавычки

Двойные прямые кавычки ("Весна") обычно называют просто «двойные кавычки» или «прямые кавычки», так как в текстах они встречаются намного чаще одинарных прямых кавычек ('Весна').

В VBA Excel прямые кавычки являются специальными символами, обозначающими текст:

x = «Магазин Весна открыт»

Переменной x присваивается строка (текст): Магазин Весна открыт.

Если мы хотим отобразить эту строку со словом "Весна" в двойных кавычках, необходимо слово в прямых кавычках экранировать еще одной парой двойных кавычек (""Весна"") или использовать функцию Chr, возвращающую символ по его числовому коду. Числовой код прямых кавычек — 34.

Пример добавления двойных прямых кавычек внутри текста из кода VBA Excel:

Sub Primer1()

Dim x As String

    x = «Магазин ««Весна»» открыт»

    Debug.Print x  ‘Магазин «Весна» открыт

    x = «Магазин « & Chr(34) & «Весна» & Chr(34) & » открыт»

    Debug.Print x  ‘Магазин «Весна» открыт

End Sub

Кавычки «ёлочки»

Двойные кавычки «ёлочки» обычно называют просто кавычки «ёлочки», так как одинарные ‹ёлочки› встречаются очень редко.

Двойные кавычки «ёлочки» не являются спецсимволами, поэтому в строках внутри процедур VBA Excel их можно использовать не только через функцию Chr по числовому коду символа, но и ввести с клавиатуры.

Ввод «ёлочек» с клавиатуры в редакторе VBA Excel осуществляется также с помощью числовых кодов символов открывающей и закрывающей кавычек:

  • числовой код открывающей кавычки («) — 171;
  • числовой код закрывающей кавычки (») — 187.

Сочетания клавиш для ввода «ёлочек» с клавиатуры:

  • Alt+0171 — ввод открывающей кавычки («);
  • Alt+0187 — ввод закрывающей кавычки (»).

Обратите внимание, что для ввода «ёлочек» с клавиатуры используется левая клавиша Alt, а числовой код набирается на цифровом блоке справа.

Пример добавления двойных кавычек «ёлочки» внутри текста из кода VBA Excel:

Sub Primer2()

Dim x As String

    x = «Магазин «Весна» открыт»

    Debug.Print x  ‘Магазин «Весна» открыт

    x = «Магазин « & Chr(171) & «Весна» & Chr(187) & » открыт»

    Debug.Print x  ‘Магазин «Весна» открыт

End Sub


Чтобы в строку VBA записать символ кавычек, приходится использовать код символа кавычек Chr(34) или дублировать символ кавычек. В итоге получается громоздкий код вида

'запись формулы в ячейку Excel
c.FormulaLocal = "=ГИПЕРССЫЛКА(""[C:Книга.xls]"")"
'или
c.FormulaLocal="=ГИПЕРССЫЛКА(" & Chr(34) & "[C:w.xls]" & Chr(34) & ")"

Для заключения строк в кавычки можно использовать функцию

'заключает текст в двойные кавычки (способ 1)
Public Function Quotes(text As String) As String
  Quotes = Chr(34) & text & Chr(34)
End Function
'заключает текст в двойные кавычки (способ 2)
Public Function Quotes(text As String) As String
  Quotes = """" & text & """"
End Function
...
c.FormulaLocal = "=ГИПЕРССЫЛКА(" & Quotes("[C:Книга.xls]") & ")"

Запись опубликована в рубрике программирование с метками VBA. Добавьте в закладки постоянную ссылку.

Заключаем строку VBA в кавычки

Чтобы в строку VBA записать символ кавычек, приходится использовать код символа кавычек Chr(34) или дублировать символ кавычек. В итоге получается громоздкий код вида

‘запись формулы в ячейку Excel

c.FormulaLocal = «=ГИПЕРССЫЛКА(«»[C:Книга.xls]»»)»

‘или

c.FormulaLocal=»=ГИПЕРССЫЛКА(» & Chr(34) & «[C:w.xls]» & Chr(34) & «)»

Для заключения строк в кавычки можно использовать функцию

‘заключает текст в двойные кавычки (способ 1)

Public Function Quotes(text As String) As String

Quotes = Chr(34) & text & Chr(34)

End Function

‘заключает текст в двойные кавычки (способ 2)

Public Function Quotes(text As String) As String

Quotes = «»»» & text & «»»»

End Function

c.FormulaLocal = «=ГИПЕРССЫЛКА(» & Quotes(«[C:Книга.xls]») & «)»

#excel #vba #formula

Вопрос:

Я хочу вставить оператор if в ячейку через vba, который включает двойные кавычки.

Вот мой код:

 Worksheets("Sheet1").Range("A1").Value = "=IF(Sheet1!B1=0,"",Sheet1!B1)"
 

Из-за двойных кавычек у меня возникли проблемы с вставкой строки. Как мне обрабатывать двойные кавычки?

Комментарии:

1. Не прямой ответ, но уверены ли вы в этой строке? Это круговая ссылка, и она не начинается со знака равенства.

2. @JimmyPena Я думаю, что это, вероятно, просто пример кода. Я отправляю правку, несмотря ни на что

Ответ №1:

Я нахожу, что самый простой способ-удвоить котировки, чтобы обработать котировку.

 Worksheets("Sheet1").Range("A1").Formula = "IF(Sheet1!A1=0,"""",Sheet1!A1)" 
 

Некоторым людям нравится использовать CHR(34)*:

 Worksheets("Sheet1").Range("A1").Formula = "IF(Sheet1!A1=0," amp; CHR(34) amp; CHR(34) amp; ",Sheet1!A1)" 
 

*Примечание: CHAR() используется в качестве формулы ячейки Excel, например, для записи «=CHAR(34)» в ячейке, но для кода VBA вы используете функцию CHR ().

Комментарии:

1. Я предпочитаю создавать глобальную переменную: Public Const vbDoubleQuote В виде строки = «»»» ‘представляет 1 двойную кавычку («) Public Const vbSingleQuote в виде строки = «»»» представляет 1 одинарную кавычку («) и использовать ее следующим образом: Оболочка «explorer.exe» amp; vbDoubleQuote amp; sPath amp; vbDoubleQuote, vbNormalFocus

2. ответ @gicalle действительно аккуратен, он сводит всю путаницу «сколько одинарных и двойных кавычек» к одному определению, где это можно задокументировать

3. Я использую множество глобальных определений во всех своих проектах VBA (когда у меня нет выбора в использовании чего-то другого, кроме VBA!!), Которые определяют все общие вещи, такие как возврат каретки, двойные кавычки и т. Д.

Ответ №2:

Другой обходной путь заключается в построении строки с временным символом-заменителем. Затем вы можете использовать REPLACE для изменения каждого временного символа на двойные кавычки. Я использую тильду в качестве временного заменяющего символа.

Вот пример из проекта, над которым я работал. Это небольшая утилита для восстановления очень сложной формулы, если/когда на ячейку случайно наступят. Это сложная формула для ввода в ячейку, но эта небольшая утилита мгновенно исправляет ее.

 Sub RepairFormula()
Dim FormulaString As String

FormulaString = "=MID(CELL(~filename~,$A$1),FIND(~[~,CELL(~filename~,$A$1)) 1,FIND(~]~, CELL(~filename~,$A$1))-FIND(~[~,CELL(~filename~,$A$1))-1)"
FormulaString = Replace(FormulaString, Chr(126), Chr(34)) 'this replaces every instance of the tilde with a double quote.
Range("WorkbookFileName").Formula = FormulaString
 

Это действительно простой трюк программирования, но он делает ввод формулы в ваш код VBA довольно простым.

Ответ №3:

Все двойные кавычки внутри двойных кавычек, которые окружают строку, должны быть изменены вдвое. В качестве примера у меня была одна из строк файла json : «доставка»: «Стандартная», В редакторе Vba я изменил ее на «»»доставка»»: «»Стандартная»», и все работает правильно. Если вам нужно вставить много похожих строк, мое предложение сначала вставить их все между»», а затем с помощью редактора VBA заменить » внутри «на»». Если вы сделаете ошибку, редактор VBA покажет эту строку красным цветом, и вы исправите эту ошибку.

Ответ №4:

Я написал небольшую процедуру, которая копирует формулу из ячейки в буфер обмена, который можно легко вставить в редактор Visual Basic.

     Public Sub CopyExcelFormulaInVBAFormat()
        Dim strFormula As String
        Dim objDataObj As Object

        'Check that single cell is selected!
       If Selection.Cells.Count > 1 Then
            MsgBox "Select single cell only!", vbCritical
            Exit Sub
        End If

        'Check if we are not on a blank cell!
       If Len(ActiveCell.Formula) = 0 Then
            MsgBox "No Formula To Copy!", vbCritical
            Exit Sub
        End If

        'Add quotes as required in VBE
       strFormula = Chr(34) amp; Replace(ActiveCell.Formula, Chr(34), Chr(34) amp; Chr(34)) amp; Chr(34)

        'This is ClsID of MSFORMS Data Object
       Set objDataObj = CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        objDataObj.SetText strFormula, 1
        objDataObj.PutInClipboard
        MsgBox "VBA Format formula copied to Clipboard!", vbInformation

        Set objDataObj = Nothing

    End Sub
 

Первоначально он был опубликован на Chandoo.org Раздел Хранилища форумов.

В этой статье разберем работу со строками в VBA на примерах функций InStr, LCASE, UCase, Left, Right, Mid, LTrim, RTrim, Trim, Len, Replace, Space, StrComp, String, StrReverse.

Строки — это последовательность символов, которая может состоять либо из алфавитов, цифр, специальных символов, либо из всех них. Переменная называется строкой, если она заключена в двойные кавычки «».

Содержание:

  • Синтаксис
  • Примеры
  • Строковые функции
  • Название функции и описание
  • InStr
  • Синтаксис
  • Параметр Описание
  • пример
  • Синтаксис
  • Параметр Описание
  • пример
  • LCASE
  • Синтаксис
  • пример
  • UCase
  • Синтаксис
  • пример
  • Left
  • Синтаксис
  • Параметр Описание
  • пример
  • Right
  • Синтаксис
  • Параметр Описание
  • пример
  • Mid
  • Синтаксис
  • Параметр Описание
  • LTrim
  • Синтаксис
  • пример
  • RTrim
  • Синтаксис
  • пример
  • Trim
  • Синтаксис
  • пример
  • Len
  • Синтаксис
  • пример
  • Replace
  • Синтаксис
  • Параметр Описание
  • пример
  • Space
  • Синтаксис
  • Параметр Описание
  • пример
  • StrComp
  • Синтаксис
  • Параметр Описание
  • пример
  • String
  • Синтаксис
  • Параметр Описание
  • пример
  • StrReverse
  • Синтаксис
  • пример

Синтаксис

variablename = "string"

Примеры

str1 = "string"   ' Only Alphabets
str2 = "132.45"   ' Only Numbers
str3 = "!@#$;*"  ' Only Special Characters
Str4 = "Asc23@#"  ' Has all the above

Строковые функции

Существуют предопределенные функции VBA String, которые помогают разработчикам эффективно работать со строками. Ниже приведены методы String, поддерживаемые в VBA. Пожалуйста, нажмите на каждый из методов, чтобы знать подробно.

Название функции и описание

Функция InStr возвращает первое вхождение одной строки в другую строку. Поиск происходит слева направо.

Синтаксис

InStr([start,]string1,string2[,compare])

Параметр Описание

  • Пуск — необязательный параметр. Указывает начальную позицию для поиска. Поиск начинается с первой позиции слева направо.
  • String1 — требуемый параметр. Строка для поиска.
  • String2 — требуемый параметр. Строка, по которой выполняется поиск String1.
  • Compare — Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
  • 0 = vbBinaryCompare — выполняет двоичное сравнение (по умолчанию)
  • 1 = vbTextCompare — выполняет сравнение текста

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click() 
   Dim Var As Variant 
   Var = "Microsoft VBScript" 
   MsgBox ("Line 1 : " & InStr(1, Var, "s")) 
   MsgBox ("Line 2 : " & InStr(7, Var, "s")) 
   MsgBox ("Line 3 : " & InStr(1, Var, "f", 1)) 
   MsgBox ("Line 4 : " & InStr(1, Var, "t", 0)) 
   MsgBox ("Line 5 : " & InStr(1, Var, "i")) 
   MsgBox ("Line 6 : " & InStr(7, Var, "i")) 
   MsgBox ("Line 7 : " & InStr(Var, "VB")) 
End Sub 

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : 6
Line 2 : 0
Line 3 : 8
Line 4 : 9
Line 5 : 2
Line 6 : 16
Line 7 : 11

Возвращает первое вхождение указанной подстроки. Поиск происходит слева направо.

InStrRev

Функция InStrRev возвращает первое вхождение одной строки в другую строку. Поиск происходит справа налево.

Синтаксис

InStrRev(string1,string2[,start,[compare]])

Параметр Описание

  • String1 — требуемый параметр. Строка для поиска.
  • String2 — требуемый параметр. Строка, по которой выполняется поиск String1.
  • Пуск — необязательный параметр. Указывает начальную позицию для поиска. Поиск начинается с первой позиции справа налево.
  • Compare — Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
  • 0 = vbBinaryCompare — выполняет двоичное сравнение (по умолчанию)
  • 1 = vbTextCompare — выполняет сравнение текста

пример

Добавьте кнопку и установите следующую функцию.

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & InStrRev(var,"s",10))
   msgbox("Line 2 : " & InStrRev(var,"s",7))
   msgbox("Line 3 : " & InStrRev(var,"f",-1,1))
   msgbox("Line 4 : " & InStrRev(var,"t",5))
   msgbox("Line 5 : " & InStrRev(var,"i",7))
   msgbox("Line 6 : " & InStrRev(var,"i",7))
   msgbox("Line 7 : " & InStrRev(var,"VB",1))
End Sub

После выполнения вышеуказанного скрипта он производит следующий результат.

Line 1 : 6
Line 2 : 6
Line 3 : 8
Line 4 : 0
Line 5 : 2
Line 6 : 2
Line 7 : 0

Возвращает первое вхождение указанной подстроки. Поиск происходит справа налево.

LCASE

Функция LCase возвращает строку после преобразования введенной строки в строчные буквы.

Синтаксис

Lcase(String)

пример

Добавьте кнопку и поместите следующую функцию внутри нее.

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & LCase(var))
   
   var = "MS VBSCRIPT"
   msgbox("Line 2 : " & LCase(var))
   
   var = "microsoft"
   msgbox("Line 3 : " & LCase(var))
End Sub

После выполнения вышеуказанного скрипта он производит следующий вывод.

Line 1 : microsoft vbscript
Line 2 : ms vbscript
Line 3 : microsoft

Возвращает нижний регистр указанной строки.

UCase

Функция UCase возвращает строку после преобразования введенной строки в буквы буквы UPPER.

Синтаксис

UCase(String)

пример

Добавьте кнопку и поместите следующую функцию внутри нее.

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & UCase(var))
   
   var = "MS VBSCRIPT"
   msgbox("Line 2 : " & UCase(var))
   
   var = "microsoft"
   msgbox("Line 3 : " & UCase(var))
End Sub

После выполнения вышеуказанного скрипта он производит следующий вывод.

Line 1 : MICROSOFT VBSCRIPT
Line 2 : MS VBSCRIPT
Line 3 : MICROSOFT

Возвращает верхний регистр указанной строки.

Left

Функция Left возвращает указанное количество символов с левой стороны данной входной строки.

Синтаксис

Left(String, Length)

Параметр Описание

  • String — обязательный параметр. Строка ввода, из которой указанное число символов должно быть возвращено с левой стороны.
  • Длина — требуемый параметр. Целое число, определяющее количество возвращаемых символов.

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   Dim var as Variant
   
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & Left(var,2))
   
   var = "MS VBSCRIPT"
   msgbox("Line 2 : " & Left(var,5))
   
   var = "microsoft"
   msgbox("Line 3 : " & Left(var,9))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : Mi
Line 2 : MS VB
Line 3 : microsoft

Возвращает определенное количество символов с левой стороны строки.

Right

Функция Right возвращает указанное количество символов с правой стороны данной входной строки.

Синтаксис

Right(String, Length)

Параметр Описание

  • String — обязательный параметр. Строка ввода, из которой указанное число символов должно быть возвращено с правой стороны.
  • Длина — требуемый параметр. Целое число, которое задает количество возвращаемых символов.

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & Right(var,2))
   
   var = "MS VBSCRIPT"
   msgbox("Line 2 : " & Right(var,5))
   
   var = "microsoft"
   msgbox("Line 3 : " & Right(var,9))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : pt
Line 2 : CRIPT
Line 3 : microsoft

Возвращает определенное количество символов с правой стороны строки.

Mid

Mid функция возвращает указанное количество символов из заданной входной строки.

Синтаксис

Mid(String,start[,Length])

Параметр Описание

  • String — обязательный параметр. Строка ввода, из которой задано количество символов, которые нужно вернуть.
  • Начало — требуемый параметр. Целое число, определяющее начальную позицию строки.
  • Длина — необязательный параметр. Целое число, определяющее количество возвращаемых символов.

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   Dim var as Variant
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & Mid(var,2))
   msgbox("Line 2 : " & Mid(var,2,5))
   msgbox("Line 3 : " & Mid(var,5,7))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : icrosoft VBScript
Line 2 : icros
Line 3 : osoft V

Возвращает определенное количество символов из строки на основе указанных параметров.

LTrim

Функция Ltrim удаляет пробелы с левой стороны строки.

Синтаксис

LTrim(String)

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   Dim var as Variant
   var =       "             Microsoft VBScript"
   msgbox "After Ltrim : " & LTrim(var)
End Sub

Когда вы выполняете функцию, она производит следующий вывод.

After Ltrim : Microsoft VBScript

Возвращает строку после удаления пробелов в левой части указанной строки.

RTrim

Функция Rtrim удаляет пробелы с правой стороны строки.

Синтаксис

RTrim(String)

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   Dim var as Variant
   var =       "Microsoft VBScript           "
   msgbox("After Rtrim : " & RTrim(var))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

After Rtrim : Microsoft VBScript

Возвращает строку после удаления пробелов в правой части указанной строки.

Trim

Функция Trim удаляет как ведущее, так и конечное пустое пространство данной входной строки.

Синтаксис

Trim(String)

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   var =       "            Microsoft VBScript           "
   msgbox ("After Trim : " & Trim(var))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

After trim : Microsoft VBScript

Возвращает строковое значение после удаления как верхнего, так и конечного пробелов.

Len

Функция Len возвращает длину данной входной строки, включая пробелы.

Синтаксис

Len(String)

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   Dim var1 as Variant
   Dim var2 as Variant
   
   var1 ="Microsoft VBScript"
   msgbox("Length of var1 is : " & Len(var1))
  
   var2 =       "       Microsoft VBScript           "
   msgbox ("Length of var2 is : " & Len(var2))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Length of var1 is : 18
Length of var2 is : 36

Возвращает длину данной строки.

Replace

Функция Replace заменяет указанную часть строки на определенную строку, указанное количество раз.

Синтаксис

Replace(string,find,replacewith[,start[,count[,compare]]])

Параметр Описание

  • String — обязательный параметр. Строка ввода, которую нужно искать для замены.
  • Find — требуемый параметр. Часть строки, которая будет заменена.
  • Replacewith — обязательный параметр. Строка замены, которая будет заменена на параметр find.
  • Start — необязательный параметр. Задает начальную позицию, из которой нужно искать и заменять строку. Значение по умолчанию — 1.
  • Count — необязательный параметр. Указывает количество раз, которое должна выполняться замена.
  • Compare — Необязательный параметр. Указывает метод сравнения, который будет использоваться. Значение по умолчанию — 0.
  • 0 = vbBinaryCompare — выполняет двоичное сравнение
  • 1 = vbTextCompare — выполняет текстовое сравнение

пример

Private Sub Constant_demo_Click()
   Dim var as Variant
   var = "This is VBScript Programming"
  
   'VBScript to be replaced by MS VBScript
   msgbox("Line 1: " & Replace(var,"VBScript","MS VBScript"))
  
   'VB to be replaced by vb
   msgbox("Line 2: " & Replace(var,"VB","vb"))
  
   ''is' replaced by ##
   msgbox("Line 3: " & Replace(var,"is","##"))
  
   ''is' replaced by ## ignores the characters before the first occurence
   msgbox("Line 4: " & Replace(var,"is","##",5))
  
   ''s' is replaced by ## for the next 2 occurences.
   msgbox("Line 5: " & Replace(var,"s","##",1,2))
  
   ''r' is replaced by ## for all occurences textual comparison.
   msgbox("Line 6: " & Replace(var,"r","##",1,-1,1))
  
   ''t' is replaced by ## for all occurences Binary comparison
   msgbox("Line 7: " & Replace(var,"t","##",1,-1,0))
  
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1: This is MS VBScript Programming
Line 2: This is vbScript Programming
Line 3: Th## ## VBScript Programming
Line 4: ## VBScript Programming
Line 5: Thi## i## VBScript Programming
Line 6: This is VBSc##ipt P##og##amming
Line 7: This is VBScrip## Programming

Возвращает строку после замены строки другой строкой.

Space

Функция Space заполняет строку конкретным количеством пробелов.

Синтаксис

space(number)

Параметр Описание

Номер — требуемый параметр. Количество пробелов, которые мы хотим добавить к данной строке.

пример

Private Sub Constant_demo_Click()
   Dim var1 as Variant
   
   var1 = "Microsoft"
   Dim var2 as Variant
   
   var2 = "VBScript"
   msgbox(var1 & Space(2)& var2)
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Microsoft VBScript

Заполняет строку указанным количеством пробелов.

StrComp

Функция StrComp возвращает целочисленное значение после сравнения двух заданных строк. Он может возвращать любое из трех значений -1, 0 или 1 на основе входных строк для сравнения.

  • Если String1 меньше String2, то StrComp возвращает -1
  • Если String1 равно String2, то StrComp возвращает 0
  • Если String1 больше String2, то StrComp возвращает 1

Синтаксис

StrComp(string1,string2[,compare])

Параметр Описание

  • String1 — требуемый параметр. Первое строковое выражение.
  • String2 — требуемый параметр. Второе строковое выражение.
  • Compare — Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
  • 0 = vbBinaryCompare — выполняет двоичное сравнение (по умолчанию)
  • 1 = vbTextCompare — выполняет сравнение текста

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   Dim var1 as Variant
   msgbox("Line 1 :" & StrComp("Microsoft","Microsoft"))
   msgbox("Line 2 :" &StrComp("Microsoft","MICROSOFT"))
   msgbox("Line 3 :" &StrComp("Microsoft","MiCrOsOfT"))
   msgbox("Line 4 :" &StrComp("Microsoft","MiCrOsOfT",1))
   msgbox("Line 5 :" &StrComp("Microsoft","MiCrOsOfT",0))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 :0
Line 2 :1
Line 3 :1
Line 4 :0
Line 5 :1

Возвращает целочисленное значение после сравнения двух указанных строк.

String

Функция String заполняет строку указанным символом для указанного количества раз.

Синтаксис

String(number,character)

Параметр Описание

  • Номер — требуемый параметр. Целочисленное значение, которое будет повторяться в течение определенного количества раз против параметра символа.
  • Символ — требуемый параметр. Значение символа, которое должно повторяться определенное количество раз.

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   msgbox("Line 1 :" & String(3,"$"))
   msgbox("Line 2 :" & String(4,"*"))
   msgbox("Line 3 :" & String(5,100))
   msgbox("Line 4 :" & String(6,"ABCDE"))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 :$$$
Line 2 :****
Line 3 :ddddd
Line 4 :AAAAAA

Возвращает строку с указанным символом для указанного количества раз.

StrReverse

Функция StrReverse меняет указанную строку.

Синтаксис

StrReverse(string)

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   msgbox("Line 1 : " & StrReverse("VBSCRIPT"))
   msgbox("Line 2 : " & StrReverse("My First VBScript"))
   msgbox("Line 3 : " & StrReverse("123.45"))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : TPIRCSBV
Line 2 : tpircSBV tsriF yM
Line 3 : 54.321

Возвращает строку после изменения последовательности символов данной строки.

 С уважением, авторы сайта Компьютерапия

Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!

0 / 0 / 0

Регистрация: 14.06.2007

Сообщений: 9

1

Как присвоить строке двойные кавычки («») ?

18.06.2007, 17:43. Показов 2849. Ответов 7


Студворк — интернет-сервис помощи студентам

Собственно требуется присвоить, например

Str = ‘ ОАО ‘Чебурашка’ ‘

А ведь не понимает двойных кавычек в середине.
;-((



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

18.06.2007, 17:43

7

Zealot

18.06.2007, 18:00

2

А зачем кавычки? Можно апострофы написать. ЗАО ‘Чебурашка’.

asd

18.06.2007, 18:11

3

Попробуй:
Str = ‘ ОАО »Чебурашка» ‘

ger

19.06.2007, 09:38

4

Еще бывают кавычки типа <<Чебурашка>>.

0 / 0 / 0

Регистрация: 14.06.2007

Сообщений: 9

19.06.2007, 12:43

 [ТС]

5

Не — нужно именно кавычки типа ‘Чебурашка’,
так как потом идет проверка в тексте на такие кавычки.

Мысля делать по тупому, составлять строку из ‘ОАО’+Кодсимвола(‘)+’Чебурашка’+.. и так далее..
Только что-то у меня не получается!!



0



Mavr

19.06.2007, 13:06

6

asd же тебе правильно показал, что бы в строке были одни двойные кавычки ставишь на этом месте пару двойных кавычек.

asd

19.06.2007, 14:06

7

Просто скопируй отсюда:

Str = ‘ ОАО »Чебурашка» ‘

в свой код и все.

0 / 0 / 0

Регистрация: 14.06.2007

Сообщений: 9

19.06.2007, 16:39

 [ТС]

8

Спасибо. :-)

Хотя все равно сделала как

Str = ‘ЗАО ‘ & Chr(34) & ‘Чебурашка’ & Chr(34)

Ну так хотелось что-нибудь в кодах, в кодах и побольше!! ;-)



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

19.06.2007, 16:39

Помогаю со студенческими работами здесь

Как записать в XML ‘ » (одинарные и двойные кавычки)
&lt;B&gt;&lt;FONT size=2&gt;Когда я вставляю в xml строку, которая содержит символы &lt;, &gt;, &amp;, ‘,&quot;
первых 3…

В заданной строке содержатся двойные кавычки. Напечатать все слова, взятые в кавычки
в заданной строке содержатся двойные кавычки. Напечатать все слова, взятые в кавычки.

Как во всей книге Excel из 10-ти листов удалить » » двойные и более пробелы на » «
Очень хочется удалить во всей книге из 25 тысяч строк более одного пробелов одним махом, решится…

Как исправить в строке запроса двойные кавычки на одинарные
Здраствуйте
У меня на сайте есть поиск, я передаю параметр serachtext в строке,когда делаю запрос…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

8

Like this post? Please share to your friends:
  • Vba excel столбец умной таблицы в массив
  • Vba excel столбец по номеру
  • Vba excel столбец по имени
  • Vba excel столбец массива в excel
  • Vba excel столбец буквой