Вытаскиваем нужное слово между символами новой строки Chr10

 
Public Rng As Range
Public Sum As Range


Public Function GETName51(ByVal i As Integer, Optional Pozz As Integer = 0) As String

 Select Case Range("E" & i).Value
           Case 55.03: GETName51 = "Депозит (размещение) " & Range("K" & i)
                       GoTo Nexti
           Case 57.02: GETName51 = "Конвертация валюты"
                       GoTo Nexti
           Case 58.03: GETName51 = "Выдача займа " & GetStringByNumberFF_NEW(Range("C" & i), Pozz)
                       GoTo Nexti
           Case 62.01: GETName51 = "Возврат ДС"
                       GoTo Nexti
           Case 66.01: GETName51 = "Погашение кредита от " & GetStringByNumberFF_NEW(Range("C" & i), Pozz)
                       GoTo Nexti
           Case 66.02: GETName51 = "Погашение % за кредит от " & GetStringByNumberFF_NEW(Range("C" & i), Pozz)
                       GoTo Nexti
           Case 66.03: GETName51 = "Погашение займа от " & GetStringByNumberFF_NEW(Range("C" & i), Pozz)
                       GoTo Nexti
           Case 67.03: GETName51 = "Погашение займа от " & GetStringByNumberFF_NEW(Range("C" & i), Pozz)
                       GoTo Nexti
           Case 68 To 69.99: GETName51 = "Налоги"
                       GoTo Nexti
           Case 70: GETName51 = "Зарплата"
                       GoTo Nexti
           Case 91 To 91.9: GETName51 = "РКО"
                       
    End Select
    
        Select Case Range("G" & i).Value
           Case 55.03: GETName51 = "Депозит (изъял) " & Range("K" & i)
                       GoTo Nexti
           Case 57.02: GETName51 = "Конвертация валюты"
                       GoTo Nexti
           Case 58.03: GETName51 = "Возврат займа " & GetStringByNumberFF_NEW(Range("D" & i), Pozz)
                       GoTo Nexti
           Case 60 To 60.9: GETName51 = "Возврат ДС от поставщика " & GetStringByNumberFF_NEW(Range("D" & i), Pozz)
                       GoTo Nexti
           Case 66.01: GETName51 = "Получение кредита от " & GetStringByNumberFF_NEW(Range("D" & i), Pozz)
                       GoTo Nexti
           Case 66.02: GETName51 = "Получение % за кредит от " & GetStringByNumberFF_NEW(Range("D" & i), Pozz)
                       GoTo Nexti
           Case 66.03: GETName51 = "Получение займа от " & GetStringByNumberFF_NEW(Range("D" & i), Pozz)
                       
           Case 67.03: GETName51 = "Получение займа от " & GetStringByNumberFF_NEW(Range("D" & i), Pozz)
                       GoTo Nexti
           Case 68 To 69.99: GETName51 = "Налоги"
                       GoTo Nexti
           Case 70: Range("J" & i) = "Зарплата"
                       GoTo Nexti
           Case 91 To 91.9: GETName51 = "РКО"
                       GoTo Nexti
         End Select
                       


  If Range("E" & i).Value = 51 Then
     GETName51 = GetStringByNumberFF_NEW(Range("D" & i), Pozz)
  Else
     GETName51 = GetStringByNumberFF_NEW(Range("C" & i), Pozz)
  End If
  
  If Range("E" & i).Value = 51 And Range("G" & i).Value = 51 Then GETName51 = "Перевод ДС"

Nexti:

End Function



'Public Function GetFirstRangeToAnaliz()
'                GetFirstRangeToAnaliz = Selection.Row
'End Function
'
'
'Public Function GetLstRangeToAnaliz()
'                GetLstRangeToAnaliz = Selection.Row + Selection.Count - 1
'End Function



'------------------------------------------------------------------------------
'Функция возвращает слово между символом новой строки Chr(10).
'Если задать номер, то вернет непосредственно то слово, которое расположено в тексте по порядку возрастания начиная с 0
'------------------------------------------------------------------------------
Public Function GetStringByNumberFF_NEW(txt As Range, Optional Pozz As Integer = 0) As String
НаСамомДелеАдресНовойСтроки = 1
 Dim arrTMP() As String
 dddddd = GetChr10Sum(txt)
 ReDim arrTMP(dddddd)
 
  If dddddd = 0 Then
    GetStringByNumberFF_NEW = txt
    Exit Function
  End If
 
 Dim arr() As String
     arr() = Split(txt)
     Count = 0
        For i = 0 To UBound(arr)
        
            AdressCHR10 = InStr(НаСамомДелеАдресНовойСтроки + 1, txt, Chr(10), vbTextCompare) ' Возвращает порядковый номер в строке Chr10
               If AdressCHR10 > 0 Then
                  Count = Count + 1
                  НаСамомДелеАдресНовойСтроки = AdressCHR10
                  arrTMP(Count - 1) = НаСамомДелеАдресНовойСтроки
               End If
        Next i
    Maxi = UBound(arrTMP) - 1
    If Pozz >= 1 And Pozz  Maxi Then GetStringByNumberFF_NEW = Mid(txt, arrTMP(Maxi - 1) + 1, arrTMP(Maxi) - 1)
    If Pozz = 0 Then GetStringByNumberFF_NEW = Mid(txt, 1, arrTMP(0))
End Function


'------------------------------------------------------------------------------
'Функция возвращает кол-во символов новой строки значение
'------------------------------------------------------------------------------
Public Function GetChr10Sum(test As Range) As Integer
    Dim arr() As String
        arr() = Split(test.Value)
        Count = 0
        For i = 0 To UBound(arr)
            AdressCHR10 = InStr(1, arr(i), Chr(10), vbTextCompare) ' Возвращает порядковый номер в строке Chr10
               If AdressCHR10 > 0 Then
                  Count = Count + 1
        '          StringArr(Count, Count) = AdressCHR10
               End If
        Next i

        If Count = 0 Then
           GetChr10Sum = 0
        Else
           GetChr10Sum = Count
        End If
End Function


'Тестовая фун-я
Sub ttest()

Dim Cla51 As New Analiz51
dd = Cla51.GetChr10Sum(Range("C6"))
ddd = Trim(Cla51.GetStringByNumberFF_NEW(Range("C6"), 4))

'ввывыв = Cla51.GetFirstRangeToAnaliz

For i = 6 To 30

 Range("J" & i) = Cla51.GETName51(i)
Next i
End Sub

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *