Заполнение столбца ячеек значениями из соседних ячеек (Excel VBA) - PullRequest
0 голосов
/ 25 февраля 2019

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

Мне нужно получить значения столбца C, чтобы соответствовать числу из скобок в B. В настоящее время мой код находит это значение из скобок активной ячейки и применяет его ко всему столбцу.Я думаю, что моя проблема в объявлении переменных, но я надеюсь, что более опытный кодер может помочь.Спасибо!

Sub fillLeads()
'
' fillLeads Macro
    Last = Cells(Rows.Count, "B").End(xlUp).Row
    cellValue = Range("B2").Value
    openingParen = InStr(cellValue, "(")
    closingParen = InStr(cellValue, ")")
    enclosedValue = Mid(cellValue, openingParen + 1, closingParen - openingParen - 1)
    For i = Last To 2 Step -1
        Cells(i, "C").Value = enclosedValue
    Next i
End Sub

1 Ответ

0 голосов
/ 25 февраля 2019

Пожалуйста, попробуйте:

Option Explicit

Sub fillLeads()

    Dim Lastrow As Long, i As Long, StartPoint As Long, FinishPoint As Long
    Dim SearchValue As String, FinalValue As String

    With ThisWorkbook.Worksheets("Sheet1")

        Lastrow = .Cells(.Rows.Count, "B").End(xlUp).Row

        For i = 2 To Lastrow

            SearchValue = .Range("B" & i).Value
            StartPoint = InStr(1, SearchValue, "(") + 1
            FinishPoint = InStr(1, SearchValue, ")") - StartPoint
            FinalValue = Mid(SearchValue, StartPoint, FinishPoint)

            .Cells(i, "C").Value = FinalValue

        Next i

    End With

End Sub

Результаты:

enter image description here

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