I created a macro for removing all whitespace in a string, specifically an email address. However it only removes about 95% of the whitespace, and leaves a few.
My code:
Sub NoSpaces()
Dim w As Range
For Each w In Selection.Cells
w = Replace(w, " ", "")
Next
End Sub
Things I have tried to solve the issue include:
~ Confirmed the spaces are indeed spaces with the Code function, it is character 32 (space)
~ Used a substitute macro in conjuction with the replace macro
~ Have additional macro utilizing Trim function to remove leading and trailing whitespace
~ Made a separate macro to test for non-breaking spaces (character 160)
~ Used the Find and Replace feature to search and replace spaces with nothing. Confirmed working.
I only have one cell selected when I run the macro. It selects and goes through all the cells because of the Selection.Cells part of the code.
A few examples:
1 STAR MOVING @ ATT.NET
322 TRUCKING@GMAIL.COM
ALEZZZZ@AOL. COM.
These just contain regular whitespace, but are skipped over.
In this Article
- Trim Function
- Trim Spaces Before and After Text
- Trim Multiple Spaces Before and After Text
- VBA Trim will NOT Remove Multiple Spaces Between Words
- Trim as a Worksheet Function
- Use Worksheet Trim Function in VBA
- Difference Between WorksheetFunction.Trim and VBA Trim
- Use VBA to add Trim Function in a Range
- LTrim Function
- RTrim Function
- Remove all spaces from text
This tutorial will demonstrate how to use the Trim, LTrim, and RTrim VBA functions as well as the Trim worksheet function.
Trim Function
The VBA Trim function removes (“trims”) erroneous spaces before and after strings of text.
Trim Spaces Before and After Text
The VBA Trim function will remove spaces before and after strings of text:
Sub TrimExample_1()
MsgBox Trim(" I love excel ")
'Result is: "I love excel"
MsgBox Trim(" I love excel")
'Result is: "I love excel"
MsgBox Trim("I love excel ")
'Result is: "I love excel"
End Sub
Trim Multiple Spaces Before and After Text
This includes trimming multiple spaces before and after text:
Sub TrimExample_2()
MsgBox Trim(" I love excel ")
'Result is: "I love excel"
MsgBox Trim(" I love excel")
'Result is: "I love excel"
MsgBox Trim("I love excel ")
'Result is: "I love excel"
End Sub
VBA Trim will NOT Remove Multiple Spaces Between Words
However, the Trim function will not remove multiple spaces in between words:
Sub TrimExample_3()
MsgBox Trim(" I love excel ")
'Result is: "I love excel"
MsgBox Trim(" I love excel")
'Result is: "I love excel"
MsgBox Trim("I love excel ")
'Result is: "I love excel"
End Sub
Trim as a Worksheet Function
However, the Excel Trim worksheet function can be used to remove extra spaces between words:
Use Worksheet Trim Function in VBA
To use the Excel Trim Function in VBA, call it by using WorksheetFunction:
Sub TrimExample_4()
Msgbox WorksheetFunction.Trim(" I love excel ")
'Result is: "I love excel"
Msgbox WorksheetFunction.Trim(" I love excel")
'Result is: "I love excel"
Msgbox WorksheetFunction.Trim("I love excel ")
'Result is: "I love excel"
End Sub
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
Learn More
Difference Between WorksheetFunction.Trim and VBA Trim
This will demonstrate the differences between Trim and WorksheetFunction.Trim:
Sub TrimExample_5()
Msgbox WorksheetFunction.Trim(" I love excel ")
'Result is: "I love excel"
Msgbox Trim(" I love excel ")
'Result is: "I love excel"
Msgbox WorksheetFunction.Trim(" I love excel")
'Result is: "I love excel"
Msgbox Trim(" I love excel")
'Result is: "I love excel"
Msgbox WorksheetFunction.Trim("I love excel ")
'Result is: "I love excel"
Msgbox Trim("I love excel ")
'Result is: "I love excel"
End Sub
Use VBA to add Trim Function in a Range
The Trim Worksheet function can be added in a Range using property .Formula:
Sub TrimExample_6()
ThisWorkbook.Worksheets("Sheet1").Range("B1").Formula = "=trim(A1)"
End Sub
LTrim Function
The LTrim function removes spaces only from the left side of the word:
Sub TrimExample_7()
MsgBox LTrim(" I love excel ")
'Result is: "I love excel "
MsgBox LTrim(" I love excel")
'Result is: "I love excel"
MsgBox LTrim("I love excel ")
'Result is: "I love excel "
MsgBox LTrim(" I love excel ")
'Result is: "I love excel "
MsgBox LTrim(" I love excel")
'Result is: "I love excel"
MsgBox LTrim("I love excel ")
'Result is: "I love excel "
End Sub
VBA Programming | Code Generator does work for you!
RTrim Function
The RTrim function removes spaces only from the right side of the word:
Sub TrimExample_8()
MsgBox RTrim(" I love excel ")
'Result is: " I love excel"
MsgBox RTrim(" I love excel")
'Result is: " I love excel"
MsgBox RTrim("I love excel ")
'Result is: "I love excel"
MsgBox RTrim(" I love excel ")
'Result is: " I love excel"
MsgBox RTrim(" I love excel")
'Result is: " I love excel"
MsgBox RTrim("I love excel ")
'Result is: "I love excel "
End Sub
Trim, Ltrim and Rtrim do not remove spaces between words.
Remove all spaces from text
Trim will only remove extra spaces in between words, but to remove all spaces in a string of text, you can use the Replace Function:
Sub ReplaceExample ()
MsgBox Replace(" I love excel ", " ", "")
'Result is: "Iloveexcel"
End Sub
Удаление лишних пробелов из строк с помощью кода VBA Excel. Функции LTrim, RTrim, Trim. Встроенная функция рабочего листа и пользовательская функция. Пример.
- LTrim(строка) — удаление пробелов слева;
- RTrim(строка) — удаление пробелов справа;
- Trim(строка) — удаление пробелов слева и справа.
Встроенная функция рабочего листа
Функция VBA Trim удаляет пробелы только по краям строки, не затрагивая двойные, тройные и т.д. пробелы внутри текста. Для удаления всех лишних пробелов следует использовать встроенную функцию Trim рабочего листа Excel.
Синтаксис функции Trim рабочего листа:
WorksheetFunction.Trim(строка) |
Пользовательская функция
Можно бороться с лишними пробелами и с помощью пользовательской функции:
Function myTrim(text As String) As String ‘Удаляем пробелы слева и справа строки text = Trim(text) ‘Удаляем лишние пробелы внутри строки Do While InStr(text, » «) text = Replace(text, » «, » «) Loop myTrim = text End Function |
Пример удаления лишних пробелов
Сократим лишние пробелы в одной и той же строке с помощью функции Trim VBA, встроенной функции Trim рабочего листа Excel, пользовательской функции myTrim и сравним результаты.
Sub Primer() Dim a1 As String a1 = » Жили у бабуси « MsgBox Trim(a1) & vbCrLf _ & WorksheetFunction.Trim(a1) _ & vbCrLf & myTrim(a1) End Sub |
Чтобы код примера сработал без ошибок, код пользовательской функции myTrim должен быть добавлен в тот же модуль.
Are all your other functions leaving whitespace behind?
Get CleanUltra!
CleanUltra removes all whitespace and non-printable characters including whitespace left behind by other functions!
I hope you find this useful. Any improvements are welcome!
Function CleanUltra( _
ByVal stringToClean As String, _
Optional ByVal removeSpacesBetweenWords As Boolean = False) _
As String
' Removes non-printable characters and whitespace from a string
' Remove the 1 character vbNullChar. This must be done first
' if the string contains vbNullChar
stringToClean = Replace(stringToClean, vbNullChar, vbNullString)
' Remove non-printable characters.
stringToClean = Application.Clean(stringToClean)
' Remove all spaces except single spaces between words
stringToClean = Application.Trim(stringToClean)
If removeSpacesBetweenWords = True Then _
stringToClean = Replace(stringToClean, " ", vbNullString)
CleanUltra = stringToClean
End Function
Here’s an example of it’s usage:
Sub Example()
Dim myVar As String
myVar = " abc d e "
MsgBox CleanUltra(myVar)
End Sub
Here’s a test I ran to verify that the function actually removed all whitespace. vbNullChar
was particularly devious. I had to set the function to remove it first, before the CLEAN
and TRIM
functions were used to stop them from removing all characters after the vbNullChar
.
Sub Example()
Dim whitespaceSample As String
Dim myVar As String
' Examples of various types of whitespace
' (vbNullChar is particularly devious!)
whitespaceSample = vbNewLine & _
vbCrLf & _
vbVerticalTab & _
vbFormFeed & _
vbCr & _
vbLf & _
vbNullChar
myVar = " 1234" & _
whitespaceSample & _
" 56 " & _
"789 "
Debug.Print "ORIGINAL"
Debug.Print myVar
Debug.Print "Character Count: " & Len(myVar)
Debug.Print
Debug.Print "CLEANED, Option FALSE"
Debug.Print CleanUltra(myVar)
Debug.Print CleanUltra(myVar, False)
' Both of these perform the same action. If the optional parameter to
' remove spaces between words is left blank it defaults to FALSE.
' Whitespace is removed but spaces between words are preserved.
Debug.Print "Character Count: " & Len(CleanUltra(myVar))
Debug.Print
Debug.Print "CLEANED, Option TRUE"
Debug.Print CleanUltra(myVar, True)
' Optional parameter to remove spaces between words is set to TRUE.
' Whitespace and all spaces between words are removed.
Debug.Print "Character Count: " & Len(CleanUltra(myVar, True))
End Sub
Содержание
- Метод WorksheetFunction.Trim (Excel)
- Синтаксис
- Параметры
- Возвращаемое значение
- Замечания
- Поддержка и обратная связь
- VBA Trim, LTrim, and RTrim Functions – Remove Spaces From Text
- Trim Function
- Trim Spaces Before and After Text
- Trim Multiple Spaces Before and After Text
- VBA Trim will NOT Remove Multiple Spaces Between Words
- Trim as a Worksheet Function
- Use Worksheet Trim Function in VBA
- VBA Coding Made Easy
- Difference Between WorksheetFunction.Trim and VBA Trim
- Use VBA to add Trim Function in a Range
- LTrim Function
- RTrim Function
- Remove all spaces from text
- VBA Code Examples Add-in
- VBA Trim — Как использовать функцию обрезки VBA для удаления пробелов в Excel?
- Функция обрезки Excel VBA
- Как использовать функцию обрезки Excel VBA?
- Функция обрезки VBA — пример № 1
- Функция обрезки VBA — пример № 2
- Плюсы функции Excel VBA Trim
- То, что нужно запомнить
- Рекомендуемые статьи
- VBA Excel. Работа с текстом (функции)
- Функции для работы с текстом
- Ключевые слова для работы с текстом
- Примеры
- Вывод прямых парных кавычек
Метод WorksheetFunction.Trim (Excel)
Удаляет из текста все пробелы, кроме отдельных пробелов между словами. Используйте обрезку для текста, полученного от другого приложения, который может иметь неправильный интервал.
Синтаксис
expression. Обрезка (Arg1)
Выражение Переменная, представляющая объект WorksheetFunction .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Arg1 | Обязательный | String | Text — текст, из которого нужно удалить пробелы. |
Возвращаемое значение
String
Замечания
Функция TRIM в Excel предназначена для обрезки 7-битового символа пространства ASCII (значение 32) от текста. В наборе символов Юникода есть дополнительный символ пробела, который называется неразрывным пробелом, который имеет десятичное значение 160. Этот символ обычно используется на веб-страницах в качестве сущности HTML, . Сама по себе функция Trim и метод WorksheetFunction.Trim не удаляют этот неразрывный пробел.
Метод WorksheetFunction.Trim в Excel отличается от функции Trim в VBA, которая удаляет только начальные и конечные пробелы.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник
VBA Trim, LTrim, and RTrim Functions – Remove Spaces From Text
In this Article
This tutorial will demonstrate how to use the Trim, LTrim, and RTrim VBA functions as well as the Trim worksheet function.
Trim Function
The VBA Trim function removes (“trims”) erroneous spaces before and after strings of text.
Trim Spaces Before and After Text
The VBA Trim function will remove spaces before and after strings of text:
Trim Multiple Spaces Before and After Text
This includes trimming multiple spaces before and after text:
VBA Trim will NOT Remove Multiple Spaces Between Words
However, the Trim function will not remove multiple spaces in between words:
Trim as a Worksheet Function
However, the Excel Trim worksheet function can be used to remove extra spaces between words:
Use Worksheet Trim Function in VBA
To use the Excel Trim Function in VBA, call it by using WorksheetFunction:
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
Difference Between WorksheetFunction.Trim and VBA Trim
This will demonstrate the differences between Trim and WorksheetFunction.Trim:
Use VBA to add Trim Function in a Range
The Trim Worksheet function can be added in a Range using property .Formula:
LTrim Function
The LTrim function removes spaces only from the left side of the word:
RTrim Function
The RTrim function removes spaces only from the right side of the word:
Trim, Ltrim and Rtrim do not remove spaces between words.
Remove all spaces from text
Trim will only remove extra spaces in between words, but to remove all spaces in a string of text, you can use the Replace Function:
VBA Code Examples Add-in
Easily access all of the code examples found on our site.
Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.
Источник
VBA Trim — Как использовать функцию обрезки VBA для удаления пробелов в Excel?
Функция обрезки Excel VBA
Функция обрезки Excel VBA используется для удаления лишних пробелов из любой ячейки или текста и дает нам вывод, который имеет стандарт с точки зрения требуемых пробелов. Функция обрезки VBA работает точно так же, как функция обрезки Excel, а функция обрезки также удаляет лишние пробелы тремя способами;
- Пробелы от начала текста.
- Пробелы от конца текста.
- Пробелы от середины текста, если видно более 1 лишнего пробела.
В основном это происходит, когда мы загружаем данные с какого-либо сервера, из хранилища данных или при неправильной вставке лишних пробелов вручную. Хотя мы можем легко увидеть пробелы в середине текста, но пробелы в начале и конце текста не могут быть легко видны до тех пор, пока мы не перейдем в режим редактирования этой конкретной ячейки. Это может сделать VBA Marco.
Как использовать функцию обрезки Excel VBA?
Мы обсудим, как использовать функцию обрезки VBA на нескольких примерах.
Вы можете скачать этот шаблон Excel с функцией обрезки VBA здесь — Шаблон Excel с функцией обрезки VBA
Функция обрезки VBA — пример № 1
Здесь у нас есть 3 ячейки на скриншоте ниже.
И каждая ячейка имеет несколько пробелов, связанных с ними. Ячейка А1 имеет пробелы в конце.
В ячейке A2 есть пробелы в начале текста.
И ячейка A3 имеет пространство между текстом, который выделен на скриншоте ниже.
Для обрезки этих ячеек мы будем использовать Excel VBA. Для этого одновременно нажмите клавиши Alt + F11 или на вкладке «Разработчик» щелкните Visual Basic, как показано ниже.
Это приведет нас к окну кодирования Visual Basic. Теперь перейдите в меню «Вставка» в окне VBA и выберите «Модуль», как показано ниже.
Это создаст новый модуль, в котором мы напишем код для обрезки. Ниже приведены шаги для создания и написания кода обрезки:
- Сначала выберите переменную и определите диапазон. Здесь мы выбрали переменную «А». Эта переменная может быть чем угодно.
- Поскольку в нашем наборе данных уже есть какой-то текст или объект, нам нужно установить диапазон для него. И для этого мы будем использовать « Выбор ». Он автоматически выберет данные в настоящем листе.
Код:
- Для выбора каждой заполненной ячейки листа «For Each» используется функция «And Value», для выбора значения с выбором « Trim (Cell)» .
Код:
На этом мы завершаем работу по кодированию для создания макроса через VBA Trim. Теперь давайте применим созданный код в какую-то вкладку. Для этого перейдите в меню « Вставка» и в разделе « Иллюстрации» выберите « Фигуры» .
Из этой опции Shapes создайте любую фигуру, используя форматы и стили форм.
Здесь мы создали прямоугольную рамку и назвали ее TRIM, как показано ниже.
Теперь нажмите в режиме «Дизайн» в меню «Разработчик» и щелкните правой кнопкой мыши на созданном окне или фигуре Щелкните правой кнопкой мыши по списку меню и выберите « Назначить макрос», чтобы связать созданный нами код, как показано ниже.
Мы получим окно Assign Marco, оттуда выберите уже созданный код макроса, здесь у нас есть Trim_Data и затем нажмите OK .
Теперь выберите данные и нажмите кнопку TRIM . Мы получим выбранную обрезку, и теперь ненужные места будут удалены, как показано ниже.
Функция обрезки VBA — пример № 2
Кодирование VBA, показанное выше, может быть написано еще одним способом. В приведенном выше примере мы обрезали только выбранные данные. В этом мы вставим функцию в окно сообщения, а также она будет отображаться после обрезки данных.
Для этого мы будем использовать те же данные, которые мы использовали в примере 1. Выполните те же шаги, перейдите на вкладку Develop r и нажмите на Visual Basic .
Как только мы это сделаем, мы получим окно Visual Basic. Теперь откройте новый модуль и начните кодирование на этой странице.
Теперь рассмотрим тот же код, который мы написали в примере-1. Но здесь для печати окна сообщения с текстом мы вставим некоторый текст.
Код:
Как только мы закончим с написанием кода, закройте окна Visual Basic.
Теперь снова перейдите на вкладку «Разработчик» и нажмите «Вставить», как показано ниже. Мы получим выпадающее меню различных форм кнопок, как показано ниже.
Теперь выберите любую из форм кнопок и нарисуйте ее в любом месте вашей рабочей книги. Из списка созданных макросов выберите необходимую опцию. Здесь мы выбрали Trim_Data2, который мы создали для этого примера, и затем нажмите OK.
После этого мы получим кнопку, созданную на экране.
Мы можем назвать кнопку в соответствии с функцией, которую мы будем выполнять. Давайте назовем это TRIM согласно функции. Теперь щелкните правой кнопкой мыши на созданной кнопке TRIM и выберите Assign Marco. Как только мы это сделаем, мы получим окно Assign Marco, как показано ниже. Теперь выберите нужный макрос и нажмите ОК.
Таким образом, наш код обрезки будет назначен на кнопку TRIM. Теперь для тестирования сначала выберите данные, а затем нажмите эту кнопку TRIM.
Как мы видим выше, здесь наши данные были обрезаны, и мы также можем увидеть сообщение « Trimming Done ».
Плюсы функции Excel VBA Trim
- Мы можем обрезать огромные наборы данных за один кадр, не проверяя количество лишних пробелов в ячейках.
- Кодирование функции обрезки также довольно мало.
- Шансов, что любое дополнительное пространство будет сэкономлено, очень мало или нет.
То, что нужно запомнить
- Всегда сохраняйте файл как Macro-Enabled Worksheet. Делая это, мы можем использовать назначенный макрос несколько раз.
- Скомпилируйте код, прежде чем назначать его любой кнопке.
- Существует 2 разных способа создания кнопки, и оба могут быть использованы в соответствии с индивидуальными потребностями или пожеланиями.
- Попробуйте написать код VBA, как показано в примере 2, который также выдаст сообщение.
Рекомендуемые статьи
Это было руководство по Excel VBA Trim. Здесь мы обсудили, как использовать функцию обрезки VBA для удаления пробелов в Excel, а также некоторые практические примеры и загружаемый шаблон Excel. Вы также можете просмотреть наши другие предлагаемые статьи —
- Функция VBA в Excel
- VBA VLOOKUP Функция
- Руководство по вкладке Excel Developer
- Как создать кнопку команды печати в Excel?
Источник
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(строка) | Преобразует буквенные символы строки в верхний регистр. |
Val(строка) | Возвращает символы, распознанные как цифры с начала строки и до первого нецифрового символа, в виде числового значения соответствующего типа. Подробнее… |
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:
Источник
Andrey Пользователь Сообщений: 41 |
как на VBA будет выглядить функция СЖПРОБЕЛЫ() ? |
Haken Пользователь Сообщений: 495 |
Trim() |
аналог функции СЖПРОБЕЛЫ в VBA — не TRIM(» текст текст «), а Последнюю можно также записать как TRIM убирает пробелы только справа и слева, |
|
Andrey Пользователь Сообщений: 41 |
Но не получается почемуто.. cell = Trim(cell) но ничего не происходит…. |
Hugo Пользователь Сообщений: 23257 |
Добавлю — Trim() уберёт только пробелы в начале и в конце, а двойные внутри оставит. А вот в VBA Excel при Application.WorksheetFunction.Trim(Ячейка.Value) — будут удаляться лидирующие и финиширующие пробелы, а также многократные пробелы между словами (исползуется стандартная функция СЖПРОБЕЛЫ) |
Hugo Пользователь Сообщений: 23257 |
{quote}{login=Andrey}{date=03.04.2010 07:17}{thema=}{post}Но не получается почемуто.. cell = Trim(cell) но ничего не происходит….{/post}{/quote} Так трим убирает только в начале и в конце — а там пробелов нет. |
Hugo Пользователь Сообщений: 23257 |
Вообще-то автор давал нормальную строку, с множественными пробелами внутри, но движок форума при выводе обрезал. Но я при цитировании их видел — можете попробовать цитнуть |
Andrey Пользователь Сообщений: 41 |
Объесняю немного подробнее,что хочется получить.. До макроса было : «_» — это пробелы (т.к. двойные пробелы движек форума «съедает») |
Афтар, выдели диапазон ячеек на листе и запусти этот код Sub DelSpaces() и не мучай людей по пустякам ))) |
|
{quote}{login=}{date=03.04.2010 10:59}{thema=}{post}Афтар, выдели диапазон ячеек на листе и запусти этот код Sub DelSpaces() и не мучай людей по пустякам ))){/post}{/quote} Sub test() |
|
)) Кирилл как всегда на высоте ) Спасибо, буду знать ) |
|
vikttur Пользователь Сообщений: 47199 |
KL, Ваше появление на форуме — подарок к празднику? Рад видеть (слышать? читать?) |
{quote}{login=vikttur}{date=04.04.2010 01:24}{thema=}{post}KL, Ваше появление на форуме — подарок к празднику? Рад видеть (слышать? читать?) :){/post}{/quote} |
|
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
{quote}{login=KL}{date=04.04.2010 04:36}{thema=Re: }{post}{quote}{login=}{date=03.04.2010 10:59}{thema=}{post}Афтар, выдели диапазон ячеек на листе и запусти этот код Sub DelSpaces() и не мучай людей по пустякам ))){/post}{/quote} Sub test() Я сам — дурнее всякого примера! … |
Alex_ST Пользователь Сообщений: 2746 На лицо ужасный, добрый внутри |
А у меня что-то так работать не хочет… Set rRange = Intersect(Selection, ActiveSheet.UsedRange) Application.ScreenUpdating = True работает отлично, а точно такой же, но по методу, предложенному KL (все ячейки диапазона сразу, а не циклом): Sub Trim_with_Range() ‘ применить функцию СЖПРОБЕЛЫ к ячейкам выделенного диапазона Set rRange = Intersect(Selection, ActiveSheet.UsedRange) Application.ScreenUpdating = True работать не хочет. Говорит, что «Несоответствие типа» (ошибка 13) С уважением, Алексей (ИМХО: Excel-2003 — THE BEST!!!) |
Alex_ST Пользователь Сообщений: 2746 На лицо ужасный, добрый внутри |
Я так сразу и пробовал. С уважением, Алексей (ИМХО: Excel-2003 — THE BEST!!!) |
Dophin Пользователь Сообщений: 2684 |
Sub Trim_with_Range() ‘ применить функцию СЖПРОБЕЛЫ к ячейкам выделенного диапазона так у меня работает, с функцией листа не работает. |
Alex_ST Пользователь Сообщений: 2746 На лицо ужасный, добрый внутри |
Подрихтовываю свой макрос, удаляющий лишние пробелы в ячейках. С формулой и датой всё ясно: Sub Trim_By_Formula() ‘ применить функцию СЖПРОБЕЛЫ к ячейкам выделенного диапазона А вот как проверить не время ли в ячеёке? С уважением, Алексей (ИМХО: Excel-2003 — THE BEST!!!) |
Юрий М Модератор Сообщений: 60588 Контакты см. в профиле |
Но ведь время — это дата. |
Alex_ST Пользователь Сообщений: 2746 На лицо ужасный, добрый внутри |
Это Вы так думаете, а Ёксель — нет. С уважением, Алексей (ИМХО: Excel-2003 — THE BEST!!!) |
Юрий М Модератор Сообщений: 60588 Контакты см. в профиле |
А вот так корректно будет? |
Юрий М Модератор Сообщений: 60588 Контакты см. в профиле |
Нет: если в ячейке формат дата + время, то тоже сработает. Тогда так: |
Alex_ST Пользователь Сообщений: 2746 На лицо ужасный, добрый внутри |
#23 12.05.2010 13:15:43 Мужики, а что быстрее будет работать в цикле: С уважением, Алексей (ИМХО: Excel-2003 — THE BEST!!!) |