У меня есть выпадающий список под названием Ted_ID, который содержит идентификаторы. Я хочу написать код VBA, который говорит, что если пользователь выберет идентификатор из выпадающего списка, он будет смотреть в таблицу и найти соответствующий идентификатор Ted и скопировать вставить соответствующее значение (corptax название объекта) справа от него, скажем, в столбце G.
2 ответа
Я хотел бы предложить вам следующий код VBA, который поможет вам вставить выбранный вами идентификатор в INPUTBOX, а затем найти его в диапазоне данных и скопировать его в Paste после нескольких строк.
Private Sub CommandButton1_Click()
Dim FirstAddress As String, cF As Range,RowsToCopy As String
ActiveSheet.Cells(186, 1).Activate
With ActiveSheet.Columns(1)
Set cF = .Find(What:=InputBox("Enter ID Number", "Search ID"), _
After:=ActiveCell, _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)
If Not cF Is Nothing Then
FirstAddress = cF.Address
Do
cF.EntireRow.Copy
Sheets("Sheet1").Range("A" & Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row + 5).PasteSpecial xlPasteValues
Set cF = .FindNext(cF)
Loop While Not cF Is Nothing And cF.Address = FirstAddress
End If
End With
End Sub
NB: Помните, что мой диапазон данных от A186 до D195. Вам необходимо изменить следующие значения в коде VBA в соответствии с вашим диапазоном данных.
Найдите 186 в 3-й строке (номер строки A186), замените эту строку Nu на свою.
Найти в 4-й строке.Столбец (1), он представляет столбец A, измените его согласно значению вашего начального столбца.
Проверьте строку 17 и замените имя листа, если необходимо, диапазон ("A"; замените его на имя столбца начала диапазона данных).
Вместо Dropdown я использовал INPUTBOX, если хотите, замените его.
Обратите внимание, я проверял этот код, прежде чем опубликовать его здесь как Решение.
Я верю, что вы найдете этот код полезным.