Добавление пробелов после i символа в ячейке |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Если у вас есть несколько текстовых строк в списке листа, теперь вы хотите вставить пробел после каждых 3 или x символов в ячейках, как показано на следующем снимке экрана. Как быстро и легко решить эту проблему в Excel?
Вставить / добавить пробел после каждых x символов в ячейках с кодом VBA
Применяя следующий код VBA, вы можете быстро вставить пробел после каждых n символов для нескольких ячеек одновременно, сделайте следующее:
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Затем нажмите Вставить > Модулии вставьте следующий код в Модули окно.
Код VBA: вставлять пробел после каждых x символов:
Sub addspace()
'updateby Extendoffice
Dim i As Long
Dim xCell As Range
Dim xRg As Range
Dim xTxt As String
Dim xStr As String
Dim xUpdate As Boolean
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select the data range:", "Kutools for Excel", xTxt, , , , , 8)
Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
If xRg Is Nothing Then Exit Sub
xUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
For Each xCell In xRg
xStr = xCell.Text
xTxt = ""
For i = 1 To Len(xStr) Step 4
If xTxt = "" Then
xTxt = Mid(xStr, i, 4)
Else
xTxt = Trim(xTxt) & " " & Mid(xStr, i, 4)
End If
Next
xCell = xTxt
Next
Application.ScreenUpdating = xUpdate
End Sub
3, Затем нажмите F5 ключ для запуска этого кода, и в поле подсказки выберите ячейки, в которые вы хотите вставить пробел, см. снимок экрана:
4, Затем нажмите OK кнопку, а пробелы были вставлены в содержимое ячейки после каждых четырех символов, см. снимки экрана:
Внимание: В приведенном выше коде вы можете изменить номер 4 на другой номер, чтобы вставить пробел после. А также вы можете изменить пространство разделителя на другие разделители в этом правиле xTxt = Trim (xTxt) & «» & Mid (xStr, i, 4) приведенного выше кода.
Вставить/Добавить пробел после каждых x символов в ячейках с Kutools for Excel
Kutools for ExcelАвтора Добавить текст функция также может помочь вам быстро и легко решить эту проблему.
После установки Kutools for Excel, пожалуйста, сделайте следующее Бесплатная загрузка Kutools for Excel от Yhao сейчас! )
1. Выделите текстовые строки, в которые вы хотите вставить пробел.
2. Затем нажмите Кутулс > Текст > Добавить текст, см. снимок экрана:
3. В Добавить текст диалоговом окне нажмите пробел один раз в Текст поле и выберите Указывать вариант под Позиция, затем введите позиции, в которые вы хотите вставить пробел, см. снимок экрана:
4, Затем нажмите Ok or Применить , вы получите результат, в котором пробелы были вставлены после каждых четырех символов по мере необходимости.
Tips: Количество позиций в поле «Указать» следует разделять запятыми.
Бесплатная загрузка Kutools for Excel от Yhao сейчас!
Связанная статья:
Как добавить / вставить определенный символ каждые x символов в ячейки?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
atyurkov Пользователь Сообщений: 23 |
Всем здравствуйте. |
БМВ Модератор Сообщений: 21376 Excel 2013, 2016 |
=REPLACE(REPLACE(B3;9;0;» «);3;;» «) По вопросам из тем форума, личку не читаю. |
atyurkov Пользователь Сообщений: 23 |
Спасибо тебе, добрый человек. Изменено: vikttur — 09.08.2021 13:21:04 |
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
|
БМВ Модератор Сообщений: 21376 Excel 2013, 2016 |
#5 09.08.2021 12:54:23
А это к вопросу из соседней темы о работе кнопки, Цитировать и Имя заметнее чем ответить, а на Цетировать все и влетает. По вопросам из тем форума, личку не читаю. |
||
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
Миш, зачем вообще в данном случае было жмакать по этой кнопке? Безотносительно её заметности. |
Jack Famous Пользователь Сообщений: 10846 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#7 09.08.2021 13:09:49
согласен — ещё и прямо над окном с вводом, в которое перемещается курсор при нажатии Лучше бы написали «Ответить» вместо «Имя«, так в форме сразу обращение к человеку будет Изменено: Jack Famous — 09.08.2021 13:10:33 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||
buchlotnik Пользователь Сообщений: 3863 Excel 365 Бета-канал |
Офигеть, если бы не эта тема — не знал бы о самом существовании кнопки Ответить Соблюдение правил форума не освобождает от модераторского произвола |
БМВ Модератор Сообщений: 21376 Excel 2013, 2016 |
#9 09.08.2021 16:14:20 Off
это тебе не задокументированный XPATCH По вопросам из тем форума, личку не читаю. |
||
buchlotnik Пользователь Сообщений: 3863 Excel 365 Бета-канал |
#10 09.08.2021 19:05:33
да, задокументированный и в документации черным по белому написано xpaTH! сколько можно-то. и в целом задокументированы функции листа, VBA, VBS, SQL, M, DAX, XML — и что? не пользоваться теперь? «только монстроформулы только хардкор»? не нравится читать — не читай, кому-то полезно, или попроси модераторов тему снести, как «оскорбляющую чувства верующих» Соблюдение правил форума не освобождает от модераторского произвола |
||
БМВ Модератор Сообщений: 21376 Excel 2013, 2016 |
Тезка, я в следующий раз буду писать в скобочках, что это не наезд а шутка раз даже смайлы не понятны. Это облегчит жизнь одному, а мне будет спокойнее, что я не усложнил ему. Изменено: БМВ — 09.08.2021 20:37:09 По вопросам из тем форума, личку не читаю. |
memo Пользователь Сообщений: 1422 Excel 2013/2016 |
#12 09.08.2021 22:28:50 Офтоп. |
Is there some function to add a space after every three character in Excel vba?
The name of the column header is «POST»
asked Sep 22, 2016 at 12:01
4
What have you tried? This is one way to go about it — note: it’s always good to check you understand the code before using it
Function AddSpace(rng As Range) As String
Dim i As Integer
Dim str As String
For i = 1 To Len(rng.Value) Step 3
str = str & " " & Mid(rng.Value, i, 3)
Next i
AddSpace = Mid(str, 2)
End Function
For your string in cell A1, use the formula =ADDSPACE(A1)
to split the string as required. Example below
Edit: updated code slightly — thanks Tyeler
answered Sep 22, 2016 at 12:23
CallumDACallumDA
12k6 gold badges30 silver badges52 bronze badges
Since Callum has already provided you with some code, I’ll leave this here for anyone who might come across it in the future. This does the same thing Callum’s code does, but instead of referencing a different cell in the function, you just put in the string.
Ex. in cell A1
you could put =AddSpace("mystring")
and it would return the value in A1
as mys tri ng
. Just an option.
Function AddSpace(Strng As String) As String
Dim t As String, i As Long
For i = 1 To Len(Strng) Step 3
t = t & " " & Mid$(Strng, i, 3)
Next i
AddSpace= Mid$(t, 2)
End Function
answered Sep 22, 2016 at 12:32
TyelerTyeler
1,0861 gold badge12 silver badges26 bronze badges
Есть ли какая-то функция для добавления пробела после каждых трех символов в Excel vba? Имя заголовка столбца — «POST».
2 ответа
Лучший ответ
Что пробовали? Это один из способов решить эту проблему — примечание : всегда полезно проверить, понимаете ли вы код, прежде чем использовать его.
Function AddSpace(rng As Range) As String
Dim i As Integer
Dim str As String
For i = 1 To Len(rng.Value) Step 3
str = str & " " & Mid(rng.Value, i, 3)
Next i
AddSpace = Mid(str, 2)
End Function
Для строки в ячейке A1 используйте формулу =ADDSPACE(A1)
, чтобы разделить строку по мере необходимости. Пример ниже
Изменить: немного обновлен код — спасибо Тайлеру
2
CallumDA
22 Сен 2016 в 12:51
Поскольку Каллум уже предоставил вам некоторый код, я оставлю его здесь для всех, кто может столкнуться с ним в будущем. Это делает то же самое, что и код Каллума, но вместо ссылки на другую ячейку в функции вы просто вводите строку.
Ex. в ячейку A1
вы можете поместить =AddSpace("mystring")
, и он вернет значение в A1
как mys tri ng
. Просто вариант.
Function AddSpace(Strng As String) As String
Dim t As String, i As Long
For i = 1 To Len(Strng) Step 3
t = t & " " & Mid$(Strng, i, 3)
Next i
AddSpace= Mid$(t, 2)
End Function
2
Tyeler
22 Сен 2016 в 12:32