Прескочи на основното съдържание

Как да вмъкна интервали преди главни букви в excel?

Автор: Xiaoyang Последна промяна: 2020-09-10

Да предположим, че имате списък с текстови низове, чиито интервали между думите са премахнати случайно, като това: Вмъкване на празни редове между данни, а сега искате да добавите интервалите преди всяка буква с главни букви, за да разделите думите като Вмъкване на празни редове между данните. Как можете бързо да добавите интервали пред главните букви, вместо да въвеждате интервали един по един в Excel?


Вмъкнете интервали преди главни букви с дефинирана от потребителя функция

За съжаление няма директен начин за добавяне на интервали преди главните букви в Excel, но можете да създадете дефинирана от потребителя функция за решаване на тази задача.

1. Активирайте вашия работен лист, който съдържа текстовите низове, към които искате да добавите интервали.

2. Задръжте натиснат ALT + F11 за да отворите Прозорец на Microsoft Visual Basic за приложения.

3. Щракнете Поставете > Модулии поставете следния код в Прозорец на модула.

VBA код: Поставете интервали преди главни букви

Function AddSpaces(pValue As String) As String
'Update 20140723
Dim xOut As String
xOut = VBA.Left(pValue, 1)
For i = 2 To VBA.Len(pValue)
   xAsc = VBA.Asc(VBA.Mid(pValue, i, 1))
   If xAsc >= 65 And xAsc <= 90 Then
      xOut = xOut & " " & VBA.Mid(pValue, i, 1)
   Else
      xOut = xOut & VBA.Mid(pValue, i, 1)
   End If
Next
AddSpaces = xOut
End Function

4. След това запазете и затворете този код, върнете се в работния лист и въведете тази формула =добавяне на интервали(A1) в празна клетка освен вашите данни, вижте екранна снимка:
doc-add-spaces-before-uppercase-1

5. И след това плъзнете манипулатора за попълване върху диапазона, който искате да съдържа тази формула, ще получите интервалите, които се вмъкват преди всяка ваша главна буква.
doc-add-spaces-before-uppercase-1

Лесно премахване на начални/крайни/допълнителни интервали в клетките

Kutools за Excel Премахване на интервали помощната програма позволява на потребителите на Excel лесно да премахват всички начални интервали, завършващи интервали, допълнителни интервали или всички интервали от избрани клетки бързо.


рекламно премахване на място 1

Вмъкнете интервали преди главни букви с VBA код

Ето друг VBA код, който може да ви направи услуга, моля, направете следното:

1. Задръжте натиснат ALT + F11 за да отворите Прозорец на Microsoft Visual Basic за приложения.

2. Щракнете Поставете > Модулии поставете следния код в Прозорец на модула.

VBA код: Поставете интервали преди главни букви

Sub AddSpacesRange()
'Update 20140723
Dim Rng As Range
Dim WorkRng As Range
Dim xOut As String
Dim xValue As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
For Each Rng In WorkRng
    xValue = Rng.Value
    xOut = VBA.Left(xValue, 1)
    For i = 2 To VBA.Len(xValue)
       xAsc = VBA.Asc(VBA.Mid(xValue, i, 1))
       If xAsc >= 65 And xAsc <= 90 Then
          xOut = xOut & " " & VBA.Mid(xValue, i, 1)
       Else
          xOut = xOut & VBA.Mid(xValue, i, 1)
       End If
    Next
    Rng.Value = xOut
Next
Application.ScreenUpdating = True
End Sub

3. След това натиснете F5 за да изпълните този код, ще се появи поле за подкана, което ви позволява да изберете диапазон от данни, който искате да използвате.
doc-add-spaces-before-uppercase-1

4, И после щракнете върху OK за да затворите това поле за подкана, интервалите са вмъкнати преди главните букви наведнъж, вижте екранната снимка:
doc-add-spaces-before-uppercase-1


Вмъкнете интервал преди всички главни букви с Kutools за Excel

Kutools за Excel добавяне на текст помощната програма може да ви помогне да заобиколите макросите на VBA и лесно да вмъкнете интервал преди всички главни букви в Excel.

Kutools за Excel - Снабден с над 300 основни инструмента за Excel. Насладете се на пълнофункционален 30-дневен БЕЗПЛАТЕН пробен период без кредитна карта! Изтегли сега!

1. Изберете диапазона, където ще вмъкнете интервал преди главни букви, и щракнете върху Kutools > Текст > добавяне на текст. Вижте екранна снимка:

2. В отварящия се диалогов прозорец за добавяне на текст въведете интервал в Текст поле, отметнете Само добавяне към опция и изберете 1-вата буква е главна от Добавете само към падащ списък.

3, Кликнете на Ok бутон за вмъкване на интервал преди всички главни букви, както е показано на следната екранна снимка:
doc добавете интервали преди главни букви 7

Kutools за Excel - Заредете Excel с над 300 основни инструмента. Насладете се на пълнофункционален 30-дневен БЕЗПЛАТЕН пробен период без кредитна карта! Вземи Го Сега

бележки: Този метод също ще добави интервал в началото на клетките, ако първата буква е главна. Можете да кандидатствате Kutools > Текст > Премахване на интервали за да премахнете всички водещи интервали от избраните клетки.


Свързана статия:

Най-добрите инструменти за продуктивност в офиса

🤖 Kutools AI помощник: Революционизирайте анализа на данни въз основа на: Интелигентно изпълнение   |  Генериране на код  |  Създаване на персонализирани формули  |  Анализирайте данни и генерирайте диаграми  |  Извикване на функциите на Kutools...
Популярни функции: Намерете, маркирайте или идентифицирайте дубликати   |  Изтриване на празни редове   |  Комбинирайте колони или клетки без загуба на данни   |   Кръг без формула ...
Супер търсене: VLookup с множество критерии    VLookup с множество стойности  |   VLookup в няколко листа   |   Размито търсене ....
Разширен падащ списък: Бързо създаване на падащ списък   |  Зависим падащ списък   |  Падащ списък с множество избори ....
Мениджър на колони: Добавете конкретен брой колони  |  Преместване на колони  |  Превключване на състоянието на видимост на скритите колони  |  Сравнете диапазони и колони ...
Препоръчани функции: Мрежов фокус   |  Изглед на дизайна   |   Голям формула бар    Мениджър на работни книги и листове   |  Библиотека с ресурси (Автоматичен текст)   |  Избор на дата   |  Комбинирайте работни листове   |  Шифроване/декриптиране на клетки    Изпращайте имейли по списък   |  Супер филтър   |   Специален филтър (филтър получер/курсив/зачертано...) ...
Топ 15 комплекта инструменти12 Текст Инструменти (добавяне на текст, Премахване на символи, ...)   |   50 + Графика Видове (диаграма на Гант, ...)   |   40+ Практичен формули (Изчислете възрастта въз основа на рождения ден, ...)   |   19 вмъкване Инструменти (Въведете QR код, Вмъкване на картина от пътя, ...)   |   12 Конверсия Инструменти (Числа към думи, Валутен обмен, ...)   |   7 Обединяване и разделяне Инструменти (Разширено комбиниране на редове, Разделени клетки, ...)   |   ... и още

Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време.  Щракнете тук, за да получите функцията, от която се нуждаете най-много...

Описание


Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна

  • Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
  • Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!
Comments (9)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
This function handles two problems that the given solution doesn't cover:
1. non-English text (with diacritical marks)
2. successive capitals that should not have spaces after them

` Private Function AddSpaces(sText As String)As String
' Inserts a space immediately before a capital letter, except when successive characters are each capitalized.
' Last Updated: 2022-07-04
'
Dim sRet As String, i As Integer, sChar As String, bPrevWasUCase As Boolean

sRet = Left(sText, 1)
For i = 2 To Len(sText)
sChar = Mid(sText, i, 1)
If sChar = UCase(sChar) And Not bPrevWasUCase Then
sRet = sRet & " " & sChar
bPrevWasUCase = True
Else
sRet = sRet & sChar
bPrevWasUCase = False
End If
Next i

AddSpaces= sRet
End Function`
This comment was minimized by the moderator on the site
Hello friend,

Thanks for your share. I tried your VBA code, but it doesn't work. Our VBA code can handle the non-english text. I have test the french text and spaces are successfully inserted before the capital letters.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
Hello

First thanks a lot for your code example and the explanations. It works very well for my case.

I just have 1 Problem, some of the Strings contain words like URL, which should not be seperated.
Do you see a way to except for example "URL" from adding spaces?

Would be very nice if you can help. I tried already a while, but i dont know how to solve this..


Best regards
luca
This comment was minimized by the moderator on the site
hi wanna ask you if you found solution for you case, if you found solution please provide me with that
This comment was minimized by the moderator on the site
Hi,
Thanks for your comment and advice. I have sent your suggestion to the Kutools project team, I’m sure they’ll improve it soon.
This comment was minimized by the moderator on the site
Found a solution?
This comment was minimized by the moderator on the site
Hi there, your code works fantastic. Do you know how to adapt code 20140723 to work on multiple sheets? I would like to add spaces between capital letters throughout the entire workbook. Thanks!
This comment was minimized by the moderator on the site
i need a help in excel i want to find Uppercase in a cell. for example: Sagar Paul MBA 16:04 i want MBA to be highlighted
This comment was minimized by the moderator on the site
I hope you can see it and give it a trial. Sub Test() Dim Rg As Range, xCell As Range Dim i As Long Dim xChar As String Set Rg = Application.Selection For Each xCell In Rg For i = 1 To xCell.Characters.Count xChar = xCell.Characters(i, 1).Text If Asc(xChar) > 64 And Asc(xChar) < 91 Then xCell.Characters(i, 1).Font.Color = vbRed End If Next Next End Sub
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations