powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / поиск подстроки
9 сообщений из 9, страница 1 из 1
поиск подстроки
    #36364945
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
доброго времени суток.
друзья, задача простая довольно, макрос в эксель.
в столбце допустим "А" хранится ФИО, например - Иванов Иван Иванович,
нужно чтобы стало Иванов И И
заранее благодарен.
...
Рейтинг: 0 / 0
поиск подстроки
    #36364966
Nomad87, именно макрос или формулу создать?
...
Рейтинг: 0 / 0
поиск подстроки
    #36365023
вот формула

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Function GetIFO(InputText As String) As String

GetIFO = Left(InputText, InStr( 1 , InputText, " ", vbTextCompare))
GetIFO = GetIFO & Mid(InputText, InStr( 1 , InputText, " ", vbTextCompare) +  1 ,  1 )
GetIFO = GetIFO & " " & Mid(InputText, InStr(InStr( 1 , InputText, " ", vbTextCompare) +  1 , InputText, " ", vbTextCompare) +  1 ,  1 )

End Function
...
Рейтинг: 0 / 0
поиск подстроки
    #36365102
_Boroda_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
формула стандартными функциями

=ЛЕВСИМВ(A2;ПОИСК(" ";A2)+1)&ПСТР(A2;ПОИСК(" ";A2;ПОИСК(" ";A2)+1);2)

Макросом

Sub yyy()
Dim ar_ As Variant
n = [a1].End(xlDown).Row
ReDim ar_(1 To n)
ar_ = WorksheetFunction.Transpose(Range("a2:a" & n))
For i = 1 To n - 1
m = WorksheetFunction.Search(" ", ar_(i)) + 1
ar_(i) = Left(ar_(i), m) & Mid(ar_(i), WorksheetFunction.Search(" ", ar_(i), m), 2)
Next i
Range("a2:a" & n) = WorksheetFunction.Transpose(ar_)
End Sub
...
Рейтинг: 0 / 0
поиск подстроки
    #36365180
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Boroda_ , в этой строке ошибку выкидывает:
Код: plaintext
ar_(i) = Left(ar_(i), m) & Mid(ar_(i), WorksheetFunction.Search(" ", ar_(i), m),  2 )
может так надо?
Код: plaintext
ar_(i) = Left(ar_(i), m) & Mid(ar_(i), WorksheetFunction.Search(" ", ar_(i)),  2 )
...
Рейтинг: 0 / 0
поиск подстроки
    #36365322
_Boroda_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121,

Обрати внимание, что в формуле
=ЛЕВСИМВ(A2;ПОИСК(" ";A2)+1)&ПСТР(A2;ПОИСК(" ";A2;ПОИСК(" ";A2)+1);2)
два вложенных поиска. Это они и есть.
А ошибку может выкидывать если в ячейке нет двух пробелов не подряд.
...
Рейтинг: 0 / 0
поиск подстроки
    #36365366
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, наверное из-за одного пробела ошибка была... спасибо.
...
Рейтинг: 0 / 0
поиск подстроки
    #36365993
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nomad87, Вопрощатель
вот еще формула
Код: plaintext
1.
2.
3.
4.
5.
Function GetIFO(InputText As String) As String
Dim str() As String
str = Split(InputText, " ")
GetIFO = Trim(str( 0 )) & Mid(Trim(str( 1 )), 1 , 1 ) & Mid(Trim(str( 2 )), 1 , 1 )
End Function
...
Рейтинг: 0 / 0
поиск подстроки
    #36366185
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо вам огромное друзья.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / поиск подстроки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]