Я пытаюсь объединить строки, которые соответствуют 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
Любая помощь очень ценится.