Здравствуйте, господа. Необходима помощь следующего характера. Средствами 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 проходит... файл примера во вложении
название темы: написать функцию для обьединения диапазон ячеек не равных "-" в строку с раделителем ", "
ответ:
Код
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
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!