私は、vba IDEがエラーで適切に壊れるのを許さないと信じています。On Error GoToはどのように使用しますか?
ソリューション/回避策はOn Error GoTo ErrorHandler
または類似を使用するためのようだ:私はここで、実行時エラーを特定する方法についての質問をしました。私はその仕事をしようとしていますが、あまり成功していません。
Microsoft On Error GoTo
によれば、ランタイムエラーが発生した場合(https://msdn.microsoft.com/en-us/library/5hsw66as.aspx)、地域の指定されたコードに送信されます。私の経験に基づいて、それはすべての話ではありません。この問題は、そのソリューションを実際に動作させる方法に関するものです。
だから私は、以下の機能を持っている:
Function generateTimeseries() As Variant
On Error GoTo ErrorHandler
Dim currentArray As Range
currentArray = Selection.Range ' this doesn't work - I don't care why
generateTimeseries = currentArray.Rows
Return
ErrorHandler:
Debug.Assert False
Resume ' break here if you want to catch errors
End Function
この関数はErrorHandler
コードを入力することはありません。代わりに、Selection.Range
になり、関数は単に#VALUE
を返します。私は実際にはなぜこれが壊れているか気にしない、私はちょうどコードを手動でジャンプすることなく、私はそれが実際にその行に落ちたことを私に教えてIDEを得ることができる知りたい。
次のとおりです。これを再現することはできません。私にとっては、ErrorHandlerコードを入力します。 2つのエラー:1. 'currentArray'はオブジェクトであるため、' Set'によって設定する必要があります: 'Set currentArray = Selection'。 2. 'Selection'は' Range'であるかもしれませんが、もしそうなら 'Range'メソッドはパラメータを必要とします。そして、この文脈では 'Return'は何をするでしょうか? –
@AxelRichter問題が見つかりました。私の投稿された答えを見てください。 – arman