Я пытаюсь написать UDF, который возвращает, находится ли ячейка на разрыве страницы.Excel UDF обнаруживает разрыв страницы?
До сих пор у меня есть это:
Function pbreak() As Boolean
' Application.Volatile
pbreak = False
Dim ra As Range
Set ra = Application.Caller
With ra
For i = 1 To .Worksheet.HPageBreaks.Count
If .Worksheet.HPageBreaks(i).Location.Row = .Row Then
pbreak = True
End If
Next
End With
End Function
Это возвращает ошибку #VALUE
. Я попытался отладить его, HPageBreaks.Count
возвращает 3 (и есть 3 разрыва страницы), но HPageBreaks(i)
дает «индекс вне диапазона» -error для всех разрывов страниц, находящихся под текущей ячейкой.
Является ли это ошибкой (то есть .Count неправильно), или есть ли какое-то особое поведение с разрывами страниц, которые мне не хватает?
Есть ли способ исправить это (желательно, не прибегая к on error resume next
)?
Благодаря Martin
Ваш код работает ОК для меня (Excel 2003) –
Вы пробовали его с более длинным документом? Я просто протестировал его, и он работает с 3 страницами или меньше, более того, и он работает только на последней странице. Weird. – Martin
yup попробовал это с 7 перерывами страницы. все ОК. Я использую Excel 2003 SP3 –