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