Код VBA для текущей ячейки работает для ячейки внизу при нажатии ввода, а не текущей ячейки - PullRequest
0 голосов
/ 17 марта 2020

Прежде всего, я не слышал о VBA до вчерашнего дня, но я не слышал ни слова о других языках (Python, Java). Положите этот кусок кода вместе с помощью inte rnet. Идея состоит в том, что, когда вы вводите строку в ячейку на листе «B» (в диапазоне B1: B200), он находит, что строка на листе «A» (в столбце A) принимает значение, следующее за ним на справа принимает это значение и печатает рядом со строкой на листе «B».

Private Sub Worksheet_SelectionChange(ByVal Target As Range)


If Not Application.Intersect(Target, Range("B1:B200")) Is Nothing Then

Dim xlRange As Range
Dim xlCell As Range
Dim xlSheet As Worksheet
Dim valueToFind

valueToFind = Target.Value
Set xlSheet = ActiveWorkbook.Worksheets("A")
Set xlRange = xlSheet.Range("A:A")

For Each xlCell In xlRange
    If IsEmpty(xlCell) = True Then
    MsgBox("Not found!")    
    Exit For
        End If
    If xlCell.Value = valueToFind Then
        Target.Offset(0, 1) = xlCell.Offset(0, 1)
        MsgBox ("Found!")
        Exit For
        End If

Next xlCell

End If
End Sub

Это почти работает, за исключением той части, которая при вводе значения в ячейку B1 и нажатии ввода, курсор переходит на B2 и применяет код там. Поэтому, когда я ввожу строку в B1, которая находится на листе «A», она выдает мне «Not found!», Потому что B2 пуста.

Есть ли простое исправление для этого?

Хорошего дня

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