Прежде всего, я не слышал о 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 пуста.
Есть ли простое исправление для этого?
Хорошего дня