Я пытаюсь создать функцию vba, чтобы заменить несколько символов из значения ячейки. Я сейчас вызываю эту функцию «TestFunction». Цель этой функции - проанализировать недопустимые символы из данных, чтобы иметь возможность использовать их, а исходные данные после анализа должны оставаться в своих собственных столбцах.
Я вставил свой код и таблицу в качестве ссылки.

Чтобы использовать функцию, я хотел бы использовать =TestFunction(...)
для вспомогательного столбца в той же строке, где находятся данные. Код работает для одной ссылки, например, =TestFunction(A1)
, но при попытке передать каскадную ссылку, например =TestFunction(A1&A2)
возвращает #VALUE!
.
Я пытался исправить это некоторое время, но безуспешно. Я мог бы создать еще один вспомогательный столбец, в котором бы содержались объединенные данные, но мне бы очень хотелось, чтобы эта функция работала без дополнительного столбца.
Кто-нибудь знает, возможно ли это достичь?
Ссылочный код:
Function TestFunction(CellContents As Range) As String
Dim CellTextReplaced As String
Dim char As Variant
' Characters to be replaced with "|" as delimiter
Const SpecialCharacters As String = ".|,|!| |/|\|+|-|@|&"
' Replace all special characters
CellTextReplaced = CellContents.Value
For Each char In Split(SpecialCharacters, "|")
CellTextReplaced = Replace(CellTextReplaced, char, "")
Next
' Output
TestFunction = CellTextReplaced
End Function
Справочная таблица:
| A | B | C | D |
-------------------------------------------------------------------
1 | .test | .test | =TestFunction(A1) | =TestFunction(A1&B1) |
2 | ,test | ,test | =TestFunction(A2) | =TestFunction(A2&B2) |
3 | test- | test- | =TestFunction(A3) | =TestFunction(A3&B3) |
4 | /test\ | /test\ | =TestFunction(A4) | =TestFunction(A4&B4) |