VBA L oop, которая удаляет пунктуацию из заданного диапазона - PullRequest
2 голосов
/ 18 марта 2020

Я довольно новичок в VBA, и мне нужно сделать al oop, который удаляет определенную пунктуацию, на которую ссылаются как значения A2: A33 в моей электронной таблице, из строки. Это то, что я до сих пор борюсь с функцией замены. Любая помощь будет принята с благодарностью!

Function CleanDescription(rawDescription As String) As String
Dim punctuationRng As Range
Set punctuationRng = Worksheets("ToRemove").Range("A2:A33")

Dim cleanDesc As String
cleanDesc = rawDescription

For i = 1 To punctuationRng.Count
cleanDesc = Replace(cleanDesc, punctuationRng, "")
Next i

CleanDescription = cleanDesc
End Function

Ответы [ 2 ]

1 голос
/ 18 марта 2020

Вы можете заменить каждое значение в диапазоне ячеек, присутствующих в строке, на For Each:

Function CleanDescription(rawDescription As String) As String
Dim punctuationRng As Range
Set punctuationRng = Worksheets("ToRemove").Range("A2:A33")

Dim cleanDesc As String
cleanDesc = rawDescription

For Each punctuationCell In punctuationRng
    cleanDesc = Replace(cleanDesc, punctuationCell.Value, "")
Next punctuationCell

CleanDescription = cleanDesc
End Function

Если вам не нравится For Each Вы также можете достичь этого с For Loop:

Dim cellValue As String
For r = 1 to punctuationRng.Rows.Count
    For c = 1 to punctuationRng.Columns.Count
        cellValue = punctuationRng.cells(r, c).Value
        cleanDesc = Replace(cleanDesc, cellValue, "")
    Next c
Next r
0 голосов
/ 18 марта 2020

Вы можете использовать For Each Loop, как показано ниже

Function CleanDescription(rawDescription As String) As String
    Dim punctuationRng As Range
    Set punctuationRng = Worksheets("ToRemove").Range("A2:A33")

    Dim cleanDesc As String
    cleanDesc = rawDescription

    Dim aCell As Range

    For Each aCell In punctuationRng
        cleanDesc = Replace(cleanDesc, aCell.Value2, "")
    Next aCell

    CleanDescription = cleanDesc
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...