Я читаю о том, как использовать On Error Resume Next
, и я пытаюсь выяснить, как долго эта строка будет применяться к программе. На веб-узле Microsoft я нашел это предложение: «Операция On Error Resume Next становится неактивной при вызове другой процедуры». Что именно это значит? Что считается процедурой?VBA: Как долго работает On Error Resume Next?
Я спрашиваю, потому что я использую строку в своей программе, но я не хочу, чтобы она Resume Next
все ошибки времени выполнения, которые встречаются, просто очевидные на следующей строке.
Код: Dim zRange Как Range
Call FilterTableFor(fieldNameColumn, Array("baseunitprice", "burden", "MTLBURRATE", "PurPoint", "Vendornum"))
On Error Resume Next
Set zRange = commentsColumnRange.SpecialCells(xlCellTypeVisible)
zRange.Formula = "target"
Call FilterTableFor(fieldNameColumn)
Я также нашел (и известный на некоторое время), что On Error
или GoTo
линии считаются бедными кодирования. Есть ли Try-Catch
, который я могу использовать для такой строки?
Я думаю, что-то вроде этого:
Dim zRange As Range
Call FilterTableFor(fieldNameColumn, Array("baseunitprice", "burden", "MTLBURRATE", "PurPoint", "Vendornum"))
Try
Set zRange = commentsColumnRange.SpecialCells(xlCellTypeVisible)
zRange.Formula = "target"
Catch()
Call FilterTableFor(fieldNameColumn)
Где я даже не делать ничего с ним, так как я не чувствую необходимость.
Спасибо за ваше время.
Использование 'On Error ...' не «считается плохим кодирования». Только использовать его * плохо * есть. В VBA нет «Try ... Catch». –
@TimWilliams делает VBA не следовать всем правилам Visual Basic? – Tawm
VBA - базовый VB6. Это не VB.NET – MatthewD