Зачастую в документе, на листе Excel, требуется найти начало и окончание блока табличной части документа.
Это можно сделать так:
Sub test()
Dim et As String
et = ""
et = FindCellIs01_(ActiveSheet, "01_", False)
If et = "" Then
nRIn = "не найден"
Else
nRIn = Range(et).Row
End If
et = ""
et = FindCellIs01_(ActiveSheet, "Итого:", False)
If et = "" Then
nROu = "не найден"
Else
nROu = Range(et).Row
End If
MsgBox "- начала блока = " & nRIn & Chr(10) & "- окончания блока = " & nROu, vbInformation + vbOKOnly, "номер строки:"
End Sub
Function FindCellIs01_(ByVal wsFind As Worksheet, paramFind As String, ySNo As Boolean)
'Поиск ячейки с paramFind и нахождение крайней занятой колонки в строке с ней:
With wsFind
Set h = .Range(.Cells(1, 1), .Cells(.UsedRange.Row + .UsedRange.Rows.Count - 1, .UsedRange.Column + .UsedRange.Columns.Count - 1)).Find(What:=paramFind)
End With
If ySNo = True Then
With wsFind
lCol = .Cells(h.Row, Columns.Count).End(xlToLeft).Column
End With
End If
If Not h Is Nothing Then
If ySNo = True Then
'сообщаем
MsgBox "Параметр " & Chr(34) & paramFind & Chr(34) & " находится в ячейке: " & h.Address & Chr(10) & _
"крайняя, занятая колонка, в строке с параметром = " & lCol, vbInformation + vbOKOnly, "Ура !!!"
End If
'возвращаем
FindCellIs01_ = h.Address
Else
If ySNo = True Then
'сообщаем
MsgBox "Параметр " & Chr(34) & paramFind & Chr(34) & Chr(10) & _
"НЕ НАЙДЕН!", vbCritical + vbOKOnly, "Караул!!!"
End If
'возвращаем
FindCellIs01_ = ""
End If
End Function