Я ищу текст "Панель" в ячейке, например, "Точка до 1160 мм x 1160 мм - 3 панели", затем я хочу извлечь число 3, а затем скопировать всю строку в строку под ним (A2-CN2).
на листе может быть до 100 строк. число «3» является переменным - может быть 1 -6. строка «панель» появляется только один раз в строке (мой текущий поиск выполняет поиск по всей строке, но мне нужен только поиск по столбцу 9 (столбец I)
. Я могу выполнить функцию поиска и поиска и уведомить меня (Мне не нужно уведомление) Я использовал формулы для извлечения числа (=rightI2,9
), а затем =left(I3,1)
Моя главная проблема заключается в том, чтобы А) скопировать и вставить ячейки под ним. B) Сделайте переменную ячейки
в Excel версии 1909 (сборка 12026.20334) на 365
Sub Panels()
Dim FoundRange As Range
Set FoundRange = Sheet1.Cells.Find(what:="Panels", lookat:=xlPart)
' display the cell address to the user
MsgBox FoundRange.Address
'''
From this I need to copy the line and INSERT underneath.
I think I can copy and paste into a new worksheet using
'''
For Each sht In ActiveWorkbook.Worksheets
If sht.Name <> consolShtNm And sht.Name Like dataShtNm Then
Sheets(sht.Name).Range("A1:XFC1").Copy (Sheets(consolShtNm).Range("B1:XFD1")) 'copy worksheet header
consolLastRow = colLastRow(consolShtNm, "B") 'check the last row in consol sheet
loopedShtLastRow = colLastRow(sht.Name, "A") 'check the last row in current looped sheet
loopedShtLastCol = rowLastColNm(sht.Name, 1) 'check the last column in current looped sheet
Sheets(sht.Name).Range("A2", loopedShtLastCol & loopedShtLastRow).Copy 'copy all data in looped sheet
Sheets(consolShtNm).Activate
Sheets(consolShtNm).Range("B" & consolLastRow + 1).Select
ActiveSheet.Paste Link:=True
For i = consolLastRow + 1 To consolLastRow + loopedShtLastRow - 1
ActiveSheet.Range("A" & i).Value = sht.Name
Next i
End If
Next sht
, копирование и вставка работает хорошо, но нечего проверять количество панелей.