Tanya3000
По-моему я понял проблему. Дело в том, что функция Application.Trim(...) корректно работает только в Excel VBA. Вы не указали для какого приложения Ваш VB. В общем виде Вашу задачу можно решить так:
Function Substring(Txt, Delimiter, n) As String
Dim x As Variant
x = Split(Txt, Delimiter)
If n > 0 And n - 1 <= UBound(x) Then
Substring = x(n - 1)
Else
Substring = ""
End If
End Function
Sub Num_word()
Dim MyText As String
Dim MyTrim As String
MyText = " aaa bbb ccc ddd eee " 'пусть это исходная строка
MyTrim = Trim(MyText)
For i = 1 To Len(MyTrim)
If Not (Mid(MyTrim, i, 1) = Chr(32) And Mid(MyTrim, i + 1, 1) = Chr(32)) Then Txt = Txt & Mid(MyTrim, i, 1)
Next i
Delimiter = " " 'разделитель
n = 4 'номер слова в предложении
MsgBox Substring(Txt, Delimiter, n) 'Substring - искомое слово
End Sub
Добавлено:
Tanya3000
Или так:
Sub Num_word()
Dim n As Integer
Dim i As Integer
Dim MyString As String
Dim AA As Variant
Dim BB As String
Dim CC As String
Dim DD As Variant
MyString = " aaa bbb ccc ddd eee fff " 'Пусть это исходная строка
n = 4 'Пусть это заданный номер слова в строке
AA = Split(MyString, " ")
For i = 0 To UBound(AA)
If AA(i) <> "" Then BB = BB & Chr(32) & AA(i)
Next i
CC = Trim(BB)
DD = Split(CC, " ")
If n > 0 And n <= UBound(DD) + 1 Then
Substring = DD(n - 1)
Else
Substring = ""
End If
MsgBox Substring 'искомое слово
End Sub
По-моему я понял проблему. Дело в том, что функция Application.Trim(...) корректно работает только в Excel VBA. Вы не указали для какого приложения Ваш VB. В общем виде Вашу задачу можно решить так:
Function Substring(Txt, Delimiter, n) As String
Dim x As Variant
x = Split(Txt, Delimiter)
If n > 0 And n - 1 <= UBound(x) Then
Substring = x(n - 1)
Else
Substring = ""
End If
End Function
Sub Num_word()
Dim MyText As String
Dim MyTrim As String
MyText = " aaa bbb ccc ddd eee " 'пусть это исходная строка
MyTrim = Trim(MyText)
For i = 1 To Len(MyTrim)
If Not (Mid(MyTrim, i, 1) = Chr(32) And Mid(MyTrim, i + 1, 1) = Chr(32)) Then Txt = Txt & Mid(MyTrim, i, 1)
Next i
Delimiter = " " 'разделитель
n = 4 'номер слова в предложении
MsgBox Substring(Txt, Delimiter, n) 'Substring - искомое слово
End Sub
Добавлено:
Tanya3000
Или так:
Sub Num_word()
Dim n As Integer
Dim i As Integer
Dim MyString As String
Dim AA As Variant
Dim BB As String
Dim CC As String
Dim DD As Variant
MyString = " aaa bbb ccc ddd eee fff " 'Пусть это исходная строка
n = 4 'Пусть это заданный номер слова в строке
AA = Split(MyString, " ")
For i = 0 To UBound(AA)
If AA(i) <> "" Then BB = BB & Chr(32) & AA(i)
Next i
CC = Trim(BB)
DD = Split(CC, " ")
If n > 0 And n <= UBound(DD) + 1 Then
Substring = DD(n - 1)
Else
Substring = ""
End If
MsgBox Substring 'искомое слово
End Sub