Вставляйте разрыв страницы каждый раз, когда появляется другое значение

#excel #vba #loops #search #page-break

Вопрос:

Я пытаюсь вставить разрыв страницы над строкой, в которой в столбце D. найдено другое значение. Я нашел этот код, который помогает в качестве начала. Это поиск определенного слова и создание разрыва страницы там. Но что, если это слово не всегда определено? Может ли кто-нибудь помочь обновить этот код или предоставить отзывы о том, как создать разрыв страницы при обнаружении другого значения? Пример таблицы приведен ниже. Он должен создавать разрыв страницы над каждым отдельным номером счета-фактуры в столбце D. Если цикл будет проще, пожалуйста, помогите и там.

 Sub InsertPageBreakAtDifValue()
 Dim x As Integer
 Dim LR As Integer
 LR = Cells(Rows.Count, 1).End(xlUp).Row
  For x = 1 To LR
  If Cells(x, 1).Value = "Invoice Total" Then
 ActiveSheet.HPageBreaks.Add Before:=Rows(x   1)
  End If
  Next
End Sub
 
Линия Ценность Количество Счет-фактура
10 100 10 12345
20 100 10 12345
30 100 10 12345
40 100 10 56789
50 100 10 56789
60 100 10 56789
70 100 10 78910

Ответ №1:

Сначала убедитесь, что диапазон данных отсортирован по номеру счета.

 Dim invNo As Integer
Dim prevInvNo As Integer

prevInvNo = 0
For x = 1 to LR
    invNo = Cells(x, 1).Value
    ' if invoice number has changed...
    if prevInvNo <> invNo then
        ' don't insert a page break before the first invoice number
        if prevInvNo > 0 then
            ActiveSheet.HPageBreaks.Add Before:=Rows(x   1)
        end if
        prevInvNo = invNo  
    end if
next x