Саша
Саша

Помогите написать программу на VbA.)Хочу понять как это делается!!)) Задание: Получить все символы, расположенные м/у первы

)Хочу понять как это делается!)) Задание: Получить все символы, расположенные м/у первым и вторым двоеточием., Если второго двоеточия нет, получиться все символы, расположенные после единственного двоеточия. Если же знак ":"вообще не было, то вставить его на четвертую позицию, считая с конца. Спасибо заранее)

СР
Сергей Рассказов

Можно так

Function CharsBetweenColons(SourceStr As String) As String
If Split(SourceStr, ":")(0) = SourceStr Then
CharsBetweenColons = Left(SourceStr, Len(SourceStr) - 4)
Else
CharsBetweenColons = Split(SourceStr, ":")(1)
End If
End Function

Пояснение кода
Split(SourceStr, ":") - расщепляем строку по разделителям ":"
Split(SourceStr, ":")(0) - это первая отделенная часть
Если Split(SourceStr, ":")(0) = исходной строке, то двоеточий нет
Left(SourceStr, Len(SourceStr) - 4) - удаляем 4 символа из строки
иначе
Split(SourceStr, ":")(1) - вторая отделенная часть, т. е. та что после первого двоеточия или между двумя двоеточиями.

MA
Mustafa A

Создайте модуль и поместите (Copy and Paste) туда следующую процедуру:

Public Function CharsBetweenColons(SourceStr As String) As String
Dim strRetValue As String

If InStr(SourceStr, ":") = 0 Then ' If no colon found, return the whole damn source with a colon inserted (4th position from the string end)
strRetValue = Left$(SourceStr, Len(SourceStr) - 4) & ":" & Mid$(SourceStr, Len(SourceStr) - 3)
Else ' The rest of the parsing process
If InStr(InStr(SourceStr, ":") + 1, SourceStr, ":") = 0 Then ' Apparently, the second ":" is missing
strRetValue = Mid$(SourceStr, InStr(SourceStr, ":") + 1) ' But we already know there's at least one present
Else ' All is left now is to return the chars in between the two colons
strRetValue = Mid$(SourceStr, InStr(SourceStr, ":") + 1, InStr(InStr(SourceStr, ":") + 1, SourceStr, ":") - InStr(SourceStr, ":") - 1)
End If
End If
CharsBetweenColons = strRetValue
End Function

Далее передаете ей какое-нибудь строковое значение и получаете в ответку строку, удовлетворяющую всем условиям задачи.

Примечание: Тестировать времени нет, если будут мелкие нюансы, дерзайте самостоятельно и не дерзите.

ЗЫ: Форматирование здесь, конечно - мама, роди меня обратно. Куда код прислать?

Похожие вопросы
КАК написать корень в программе VBA?помогите пожалуйста..
Помогите пожалуйста разобраться с заданиями VBA
VBA!!! Задание написано ниже в комменатриях
Помогите написать программу на языке программирования VBA (работа с массивами)
помогите с vba, задание на зачет по массивам.
написать программу VBA, КАК ЭТО СДЕЛАТЬ?!
помогите VBA. детское задание.
Помогите! ! !Нужно написать программу С++ задание на картинке!!!
Помогите написать программу в VBA
Помогите пожалуйста с заданием по программированию VBA