#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
socelT.offset(0,1).Value = celS.offset(0,3).Value
, илиcells(celS.row,5).value
4. @Nathan_Sav я новичок в этом, я буду более рад, если вы отобразите это в моем примере
5. Готов поспорить, что вы бы:o) Вы потратили на это меньше 2 минут. :o)