#vba
#vba
Вопрос:
Я пытался написать код VBA для поиска текста, и если текст найден, он должен пройти 4 строки вниз, а затем выбрать весь столбец оттуда. Пытался написать приведенный ниже код, но не работает
Sub FindLevel()
Dim p_text As String
Dim myrange As Range
Sheets("View").Activate
p_text1 = Sheets("Output").Range("AA6")
p_text2 = Sheets("Output").Range("AB6")
For Each Cell In Range("C5:CI5")
If Cell.Value = p_text1 Then
last_row = Cells(Rows.Count, 1).End(xlUp).Row
Cell.Offset(4, 0).Select 'Selected the desired cell
Selection.last_row.Copy
Selection.Copy
Sheets("Output").Activate
Range("AA7").Select
ActiveSheet.Paste
End If
Next
End Sub
Комментарии:
1. Вы имеете в виду, что хотите выбрать всю СТРОКУ (не столбец)
2. После этой строки: Ячейка. Смещение (4, 0).Выберите — курсор должен двигаться вниз по строке, выделите все непустые ячейки целиком (аналогично стрелке Ctrl shift вниз), а затем вставьте в выходной лист.
3. Ах, хорошо, так что это не весь столбец, это просто диапазон в этом столбце, от определенной начальной строки до последней строки со значениями.
4. да — Не могли бы вы, пожалуйста, сказать мне, как мне перейти к ячейке. Смещение (4, 0).Выберите
Ответ №1:
Я не знаю, что вы подразумеваете под p_text1 и p_text2 .. и я предполагаю, что у вас есть данные поиска в ячейке «AA6»..Тогда код будет выглядеть следующим образом.
Sub FindLevel()
Dim p_text As String, sh As Worksheets, lastcol As Long, lastrow As Long
Set sh = Worksheets("View")
p_text = Sheets("Output").Range("AA6")
sh.Activate
lastcol = sh.Cells(5, Columns.Count).End(xlUp).Row
For i = 5 To lastcol
'I am assuming that you want to go column wise..Like C5,D5,E5....CI5 from this below line.
'For Each Cell In Range("C5:CI5")
If sh.Cells(5, i).Value = p_text Then
sh.Cells(5, i).Offset(4, 0).Select
lastrow = sh.Cells(Rows.Count, i).End(xlUp).Row
Range(Selection, sh.Cells(lastrow, i)).Select
Selection.Copy
Sheets("Output").Activate
Range("AA7").Select
ActiveSheet.Paste
Exit For
End If
Next i
End Sub