Функция перемещения слова в строке
Я тут недавно понял одну вещь: если необходимо одно слово в предложении поменять местами с другим словом, то через стандартные функции листа Excel это сделать весьма проблематично. Вот и решил создать небольшую функцию пользователя, которая бы умела перемещать слово из одной позиции в другую.
Function Move_SubString(Ячейка As String, Номер_подстроки As Long, Новое_место As Long, Optional Разделитель As String = " ") Dim sStr, li As Long Dim sNewWord As String, sTmpStr As String sStr = Split(Ячейка, Разделитель) For li = LBound(sStr) To UBound(sStr) If li = Номер_подстроки - 1 Then sTmpStr = sStr(li): sStr(li) = "" Next li For li = LBound(sStr) To UBound(sStr) If li = Новое_место - 1 Then sNewWord = sNewWord & Разделитель & sTmpStr & Разделитель & sStr(li) Else sNewWord = sNewWord & Разделитель & sStr(li) End If Next li Move_SubString = Application.Trim(sNewWord) End Function
Function Move_SubString(Ячейка As String, Номер_подстроки As Long, Новое_место As Long, Optional Разделитель As String = " ")
Dim sStr, li As Long
Dim sNewWord As String, sTmpStr As String
sStr = Split(Ячейка, Разделитель)
For li = LBound(sStr) To UBound(sStr)
If li = Номер_подстроки - 1 Then sTmpStr = sStr(li): sStr(li) = ""
Next li
For li = LBound(sStr) To UBound(sStr)
If li = Новое_место - 1 Then
sNewWord = sNewWord & Разделитель & sTmpStr & Разделитель & sStr(li)
Else
sNewWord = sNewWord & Разделитель & sStr(li)
End If
Next li
Move_SubString = Application.Trim(sNewWord)
End FunctionЯчейка — текст или ссылка на ячейку с текстом, в котором необходимо переместить слово.
Номер_подстроки — это номер слова в строке, которое перемещаем.
Новое_место — номер позиции слова в строке, куда перемещаем.
Разделитель — необязательный аргумент. По умолчанию — пробел. Этим символом будет разделено перемещаемое слово.
С помощью функции можно либо переместить слово с одной позиции в предложении на другую или поменять слова в предложении местами. В файле-примере вы найдете примеры применения обоих вариантов.
Tips_Macro_MoveSubstring.xls (38,5 KiB, 568 скачиваний)
Также см.:
→Работа с текстом
→Как перевернуть слово?



рис.1
рис.2
рис.1
