Строка поиска в строке с помощью поля ввода скопируйте выбранные ячейки из этой строки и вставьте их на новый лист

#excel #vba

#преуспеть #vba #excel

Вопрос:

Я надеюсь выполнить следующие шаги в одном скрипте:

Принимайте пользовательский ввод через поле ввода. Найдите этот текст на рабочем листе («Sheet3»). Скопируйте 5 ячеек B7, D7, F7, G7, I7 из этой искомой ячейки и вставьте затем на рабочий лист («Лист2») в ячейки B2, C2, D2, E2, F2

это мой Код.

     Dim rId As Range, celS As Range, celT As Range
Dim wS As Worksheet, wT As Worksheet
Dim sId As String

Set wS = Worksheets("Sheet3")
Set wT = Worksheets("Sheet2")
Set celT = wT.Range("B2")

    sId = InputBox("Enter ID")
    If Len(sId) = 0 Then Exit Sub

    Set rId = wS.Range("A2:BM2210") 'start of search area
    Set rId = wS.Range(rId, wS.Cells(wS.Rows.Count, rId.Column).End(xlUp)) 'rest of data

    Set celS = rId.Find(sId, , xlValues, xlWhole, , , False)

    If Not celS Is Nothing Then
        Set celS = Intersect(wS.Columns("A:B"), celS.EntireRow) 'extract name
        If Not IsEmpty(celT) Then 'find next empty cell in target sheet
            Set celT = wT.Cells(wT.Rows.Count, celT.Column).End(xlUp).Offset(1)
        End If
        celT.Value = celS.Value
    End If
  

Комментарии:

1. Итак, в чем здесь проблема?

2. я могу скопировать только одну ячейку, я хочу, чтобы все 5 ячеек имели значение

3. У вас есть строка из celS , поэтому используйте, например, cells или offset из celS so celT.offset(0,1).Value = celS.offset(0,3).Value , или cells(celS.row,5).value

4. @Nathan_Sav я новичок в этом, я буду более рад, если вы отобразите это в моем примере

5. Готов поспорить, что вы бы:o) Вы потратили на это меньше 2 минут. :o)