Добрый день,Excel VBA Конкатенация только видимых ячеек фильтрованной колонки. Тестовый код
Я пытаюсь объединить отфильтрованную колонку в одну ячейку, разделенную запятыми. Я мало знаю о кодировании, код предоставляется другими после нескольких часов поиска.
До сих пор эта функция работает, но и присоединяет невидимые, отфильтрованные клетки:
Function test1(myRange As Range)
Dim aOutput
For Each entry In myRange
If Not IsEmpty(entry.Value) Then
aOutput = aOutput & entry.Value & ", "
End If
Next
test1 = Left(aOutput, Len(aOutput) - 1)
End Function
И это один работает хорошо, где он также будет удалить дубликаты из диапазона, но имеет ту же проблему:
Function test2(ByRef rRng As Range, Optional ByVal sDelim As String = ", ") As String
Dim oDict As Object
Dim rCell As Range
Dim sTxt As String
Set oDict = CreateObject("Scripting.Dictionary")
With oDict
For Each rCell In rRng
If .Exists(rCell.Text) Then
'Do nothing
Else
.Add rCell.Text, rCell.Text
sTxt = sTxt & sDelim & rCell.Text
End If
Next rCell
End With
test2 = Mid(sTxt, Len(sDelim) + 1)
End Function
Возможно ли изменить две функции, чтобы игнорировать невидимые отфильтрованные ячейки в столбце?
Спасибо за чтение,
Brian
Спасибо, это работает! – Brian
Что делать, если я хочу объединить только уникальные значения? – user2284877
@ user2284877 Вы должны использовать 'Collection' для удаления дубликатов –