#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