Поиск текста в ячейке, затем извлечение переменной в этом поле (число), затем копирование и вставка этой строки, сколько раз в найденной строке - PullRequest
0 голосов
/ 17 октября 2019

Я ищу текст "Панель" в ячейке, например, "Точка до 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

, копирование и вставка работает хорошо, но нечего проверять количество панелей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...