Формула VBA удаляет все после второго пробела - PullRequest
1 голос
/ 22 апреля 2019

Я пытался скопировать из столбца D в столбец E первые два слова каждой строки, но все еще не могу найти, где ошибка ....

Range("E1:E" & lLastRow).Formula = "=LEFT(D1,FIND("" "",D1,FIND("" "",D1)+1)-1)"

Ответы [ 2 ]

1 голос
/ 22 апреля 2019

Другой вариант, вместо использования формулы, вы можете использовать функцию Split.

Код

Dim i As Long, LastRow As Long
Dim WordsArr As Variant

' loop through rows
For i = 1 To LastRow
    WordsArr = Split(Range("D" & i).Value, " ")  ' use Split and space to read cell words to array

    If UBound(WordsArr) >= 1 Then ' make sure the cell contents is at least 2 words
        Range("E" & i).Value = WordsArr(0) & " " & WordsArr(1) ' insert only the first 2 words

    Else ' in case there are less than 2 words
        ' do someting....

    End If
Next i

End Sub
1 голос
/ 22 апреля 2019

Попробуйте вместо этого ...

Range("E1:E" & lLastRow).FormulaR1C1 = "=LEFT(RC[-1],FIND("" "",RC[-1],FIND("" "",RC[-1])+1)-1)"

Я считаю, что использование R1C1 лучше для таких операций, особенно если вы хотите, чтобы ваши ссылки были динамическими, а не абсолютными.

В качестве альтернативы,добавьте формулу, которую вы имели обычно, и просто заполните.

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