Как насчет:
Function GetLastRow(strSheet, strColumn) As Long
Dim MyRange As Range
Set MyRange = Worksheets(strSheet).Range(strColumn & "1")
GetLastRow = Cells(Rows.Count, MyRange.Column).End(xlUp).Row
End Function
Относительно комментария, это возвратит номер строки последней ячейки, даже когда только отдельная ячейка в последней строке имеет данные:
Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Я не знаю о библиотеках Python, но для пакетного удаления паролей из документов PDF мои коллеги имеют хороший опыт работы с PwdRemover (платно).
Вот два других инструмента (с открытым исходным кодом) для обработки из командной строки:
QPDF: Система преобразования PDF с сохранением содержимого :
qpdf --password=PASSWORD --decrypt SECURED.pdf UNSECURED.pdf
pdftk - набор инструментов pdf :
pdftk SECURED.pdf input_pw PASSWORD output UNSECURED.pdf