если у сцепки в конце строки есть 2 одинаковых набора знаков которые повторяются 2 раза ( отделенные запятой) то 1ин из них удаляется. ( как пример: ",млрд.руб, млрд.руб"
после этого она удаляет из ячейки все левые символы которые могу встретиться в тексте ( которые актуальны для меня), все кроме кавычек ибо в формуле их не задать, по этому я воткнул кавычки в ячейку и работал от этого
О великие мастера! просьба помочь, ибо мне страааааашно!)
Функция. Второй параметр - это строка с набором символов который нужно заменить. например */.() "" дваойные ковычки вводятся дважды. то есть в ячейе "*/.() """
Код
Function SpecTrim(ByVal SourceString As String, ByVal CharsSet As String) As String
Arr = Split(SourceString, ",")
If Arr(UBound(Arr)) = Arr(UBound(Arr) - 1) Then Arr(UBound(Arr)) = ""
Result = Join(Arr)
For i = 1 To Len(CharsSet)
Result = Replace(Result, Mid(CharsSet, i, 1), "")
Next i
SpecTrim = Result
End Function
Мммммм спасибо за информацию, но я хотел организовать работу макроса вместе с этой формулой, что бы в массив вносились данные без ненужных знаков, а потом сравнивались с таким же набором символов, без левых знаков.
То есть вы хотите чтоб просто тот монстрик просто как формула вписывалась в ячейку? Вопрос - зачем? Что вы подразумеваете под левыми, ненужными знаками?... В какой массив?
То что выше- это функция которая заменяет ту формулу, что вы привели. Использовать её как функцию листа или внутри скрипта - без разницы. Единственное. что в ней независимо от набора "ненужных" символов , удалится запятая, но это просто изменить.
Касательно функции я понял, но у формулы есть еще 1о предназначение, удаление повторяющейся единицы измерения ( через запятую если идут подряд) я как раз и просил подобрать макрос ко ВСЕЙ формуле.... =) то есть макрос берез значение из ячейки, потом ищет повторяющиеся ед. измерение и удаляет его если есть, а потом удаляет лишнее из получившегося ( это через вашу функцию)
Exzem написал: если у сцепки в конце строки есть 2 одинаковых набора знаков которые повторяются 2 раза ( отделенные запятой) то 1ин из них удаляется. ( как пример: ",млрд.руб, млрд.руб"
Набор ненужных знаков вы сами контролируете. Просто даже интересно. примеры , те что были - полностью идентичны, сейчас специально сравнил, разве что ";" добавил.
Вы были правы, сейчас разобрался с функцией полностью, до этого мог только смотреть на нее =) но нашёл 1ин косяк, Ед. измерения может быть не всегда, и если ее нету, то выдает ошибку, можно это как то поправить?
Function SpecTrim(ByVal SourceString As String, ByVal CharsSet As String) As String
arr = Split(SourceString, ",")
If UBound(arr) > 0 Then
If arr(UBound(arr)) = arr(UBound(arr) - 1) Then arr(UBound(arr)) = ""
Result = Join(arr)
Else
Result = arr(0)
End If
For i = 1 To Len(CharsSet)
Result = Replace(Result, Mid(CharsSet, i, 1), "")
Next i
SpecTrim = Result
End Function
а не могли бы вы объяснить как использовать данную функцию непосредственно в макросе, не используя ее в ячейке ( соответственно самому задать не нужные знаки)