Я пытаюсь изменить код, который я нашел. Это функция VBA, которая ищет все экземпляры значения ячейки, а затем возвращает значение ячейки из каждого экземпляра в одну ячейку. Я пытаюсь вернуть только те значения, которые еще не были найдены, и, следовательно, заканчивается ячейкой, которая не содержит дубликатов.Excel Macro VBA Not Instr
Оригинальный код:
Function Lookup_concat(Search_string As String, _
Search_in_col As Range, Return_val_col As Range)
Dim i As Long
Dim result As String
For i = 1 To Search_in_col.Count
If Search_in_col.Cells(i, 1) = Search_string Then
result = result & " " & Return_val_col.Cells(i, 1).Value
End If
Next
Lookup_concat = Trim(result)
End Function
Я изменил код этого, я отступом редактирование вместо того чтобы держать его на той же линии, чтобы сделать его легче читать
Function Lookup_concat(Search_string As String, _
Search_in_col As Range, Return_val_col As Range)
Dim i As Long
Dim result As String
For i = 1 To Search_in_col.Count
If Search_in_col.Cells(i, 1) = Search_string
And Not (InStr(1, result, Return_val_col.Cells(i, 1).Value)) Then
result = result & " " & Return_val_col.Cells(i, 1).Value
End If
Next
Lookup_concat = Trim(result)
End Function
Это версия является самой близкой к функции PHP !strstr
(что я понимаю) и, возможно, пытаюсь применить методы PHP к VBA, где я ошибаюсь. Мои мысли в том, что строка результата фактически заполнена ПОСЛЕ моей команды Instr
, поэтому она не работает.
Отлично, спасибо! Извините за медленный ответ, я не был на работе с прошлой недели – JoeP