VBA Как заменить функцию чтения аргументов из предопределенного списка / файла? - PullRequest
0 голосов
/ 18 января 2019

Я пытаюсь создать макрос, который заменит в ячейках слова, перечисленные в функции или, возможно, во внешнем файле. Я пытаюсь объявить строку, но безрезультатно. У меня это работает, скопировав эту строку много раз:

Cells(g, h).Replace What:="BadWord", Replacement:=""

Я хочу использовать только один раз эту строку и вместо «BadWord» использовать, например, Badwords как список всех слов, которые мне нужно удалить из ячеек.

' This is what i use now and is working":
For g = 2 To Rows() 
h = 4
Cells(g, h).Replace What:="BadWord1", Replacement:=""
Cells(g, h).Replace What:="BadWord2", Replacement:=""
Cells(g, h).Replace What:="BadWord3", Replacement:=""

Next g



'What i tried with no result:

Dim BadWords() As String
BadWords = Split("BadWord1,BadWord2,BadWord3", ",")

For g = 2 To Rows() 
h = 4
Cells(g, h).Replace What:=BadWords, Replacement:=""

Next g

Я искал, почему это не сработает, но я не нашел четкого ответа или решения. Возможно, я использую это неправильно или что-то в этом роде.

1 Ответ

0 голосов
/ 18 января 2019

Вместо циклического перемещения по ячейкам рассмотрите возможность использования Replace для всего столбца. Тем не менее, вам нужно перебрать элементы массива примерно так:

Sub Bowdlerize()
    Dim BadWords()
    BadWords = Array("BadWord1", "BadWord2", "BadWord3")

    Dim i As Integer
    For i = LBound(BadWords) To UBound(BadWords)
        Worksheets("MySheetName").Columns(4).Replace What:=BadWords(i), Replacement:=""
    Next i
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...