2015-10-17 43 views
0

我明白爲什麼我會收到錯誤 - 但由於我使用了很多類模塊並在按鈕的單擊事件中處理用戶輸入,所以我不知道如何開始尋找這個問題,而無需通過所有的程序。追蹤「當前範圍內的重複聲明」

這是唯一的選擇還是有一些更好的編碼和調試VBA代碼的方法嗎?

+0

通常,您需要逐步完成代碼。另一種方法是,當你得到一個運行時錯誤來點擊調試按鈕,這會把你帶到拋出錯誤的那一行。從那裏你可以通過瀏覽堆棧來追溯你的步伐。但在你的情況下,沒有什麼可執行的:項目不能編譯,所以你唯一能做的就是在函數的作用域,模塊作用域或公共中找到重複的變量(或常量或函數名) :在VBA編輯器中試試這個:菜單調試 - >編譯項目。這應該突出顯示它找到的第一個副本 –

回答

0

可能有一個VBA特定的技巧,我不知道,但這裏是一個更通用和不太花哨的方法。我沒有提供完整的解決方案,因爲您可以使用很多不同的工具來完成同樣的事情,具體取決於平臺,偏好等,但它應該讓您瞭解如何解決問題。

  1. 使用,如Linux的grep的一個多文件的正則表達式的工具,我Ack(Windows和UNIX),或任何你舒服提取所有Dim陳述

  2. 使用命令列表的優先行工具或Excel獲取每個獨特Dim聲明

  3. 的計數對於每個都Dim在同一倒是不止一次,使用IDE的搜索功能,以檢查他們是否Dim倒是兩次標識符範圍