Страницы: 1
RSS
Функция для обьединения диапазон ячеек не равных "-" в строку с раделителем ", "
 
Здравствуйте, господа. Необходима помощь следующего характера. Средствами VBA необходимо написать функцию, которая на вход имеет массив строковых значений как пример это столбец ( "ААА", "ККК", "ЭЭЭ", "-", "-", "-" ) значения находятся в ячейках А1...А6 - эти ячейки и образуют массив. Необходимо что бы функция отсеивала значения "-" и итоговое значение ячейки с формулой данной функции должно быть "ААА; ККК; ЭЭЭ"

Написал функцию:
<Function TextCount (ParamArray Ranges() as variant) as string >
   <TextCount = "" >
        < for i = lbound(Ranges) to Ubound(Ranges)>
                        <if  Ranges(i) <> "-"  then >
                                <TextCount = TextCount + Ranges(i) + "; " >
                        <end if >
       <next i >
<end function >

Не понимаю как задать массив строковыми значениями потому что ParamArray может иметь значение только Variant
Так же знаю что можно вопрос решить дикими формулами, но данный вариант не рассматриваю так как скорость выполнения тех формул будет дольше нежели чем данного цикла.
Кто может сталкивался ?
в литературе тоже не могу найти правильного пути решения, все варианты сводятся к книге Уокенбаха. Дж. В котором описана функция суммы, но там вариант с ParamArray проходит... файл примера во вложении  
Изменено: leshajanaev - 25.05.2020 02:23:55
 
Правила форума, о названии темы. Читайте, предлагайте новое. Заменят модераторы
Код в сообщенииледует оформлять с помощью кнопки <...>
 
Спасибо, щас отредактирую.  
 
название темы:
написать функцию для обьединения диапазон ячеек не равных "-" в строку с раделителем ", "

ответ:
Код
Function TextCount(Ranges As Range) As String
  Dim c As Range
  For Each c In Ranges
    If c <> "-" Then TextCount = TextCount & ", " & c
  Next
  If TextCount <> "" Then TextCount = Right(TextCount, Len(TextCount) - 2)
End Function
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Спасибо. Все отличено работает.
Оказывается что даже можно не задавать тип входных данных
Страницы: 1
Наверх