объединять строки и изменять текст в зависимости от количества строк - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь объединить строки, которые соответствуют 2 конкретным критериям. 1) Если он содержит «спецификацию» и если в этих строках смещение (1,0) содержит «B».

В настоящее время:

            ColA | ColB

- FND BOM (SH 1) | 168B0281
- FND BOM (SH 2) | 168B0282

Необходимо:

- FND BOM (2 SHEETS)  168B0281

Необходимо переименовать листы так, чтобы последний # был для этой страницы #, но оставить номер первой страницы.

Это правильно переименует все "(Sheets"), но не только переименует, если смещение (1,0) содержит "B". Мне также необходимо удалить ненужные строки.

Sub combineBOM() '/// WORK IN PROGRESS
Dim i As Integer, ws As Worksheet
Dim firstrow As Long, lastrow As Long
Dim tmp As String, SearchChar As String
Dim aCell As Range, bCell As Range

Application.ScreenUpdating = False
firstrow = 3
lastrow = Range("A" & Rows.Count).End(xlUp).Row
Set ws = ThisWorkbook.Sheets("Drawing Index")
SearchChar = "(SH "

Call ShortHandBOM
With ws
For i = 1 To 25 'is there a better way to do this?
    l = firstrow
    Do
    Set aCell = .Cells(l, 1)
    Set bCell = .Cells(l, 2)
    If InStr(1, aCell, "BOM", vbTextCompare) > 0 And _
       InStr(1, bCell, "B", vbTextCompare) > 0 And _
       InStr(1, aCell, SearchChar, vbTextCompare) > 0 Then

    With Columns("A")
       .Replace what:="(SH " & i & ")", Replacement:="(" & i & " SHEETS)", LookAt:=xlPart, SearchOrder:=xlByRows
    End With

    End If
    l = l + 1
    Loop While l <= lastrow
Next
End With
Application.ScreenUpdating = True
Application.StatusBar = vbNullString
End Sub

Любая помощь очень ценится.

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