我導致相信vba IDE不允許正確地打破錯誤。我問如何辨別這裏運行時錯誤問題:如何使用On Error GoTo?
的解決方案/解決方法似乎是使用On Error GoTo ErrorHandler
或相似。我正在努力完成這項工作,但沒有取得太大的成功。
根據微軟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代碼」:無法重現此。對我來說,它會輸入ErrorHandler代碼。兩個錯誤:1.由於'currentArray'是一個對象,它必須通過'Set'設置:'Set currentArray = Selection'。 2.「選擇」可能是一個「範圍」,但如果是這樣,其「範圍」方法需要參數。在這種情況下,「迴歸」會做什麼? –
@AxelRichter我發現了這個問題。看到我發佈的答案。 – arman