如您已經知道如何創建UDFS(我希望您也嘗試在Excel中應用它們),讓我們更深入地挖掘一下,如果您的用戶定義的功能無法正常工作,請查看可以做什麼。
為了在創建自定義功能時解決一些問題,您很可能需要運行調試。然後,您可以確定該功能正常工作。
我們將探討以下調試技術:
創建自定義功能時,總是有可能犯錯。自定義功能通常非常複雜。而且他們並不總是立即開始正確地工作。公式可能會返回不正確的結果或#Value!錯誤。與標準Excel功能不同,您將看不到任何其他消息。
有沒有辦法逐步瀏覽自定義函數以檢查其每個語句的工作方式?當然!調試用於此。
我將為您提供幾種調試您的自定義功能的方法,以便您可以選擇適合您的功能。
例如,我們從以前的文章之一中使用自定義函數getmaxbet ,該文章計算指定值範圍內的最大數字:
函數參數是編寫數字的單元格,以及值的上限和下限。
將msgbox功能放在重要位置
為了監視計算的執行,您可以在正確位置的屏幕上顯示最重要的變量的值。這可以使用彈出對話框完成。
MSGBOX是一個對話框,您可以使用它向用戶顯示某種消息。
MSGBOX的語法類似於其他VBA函數:
msgbox(提示[,按鈕] [,title] [,helpfile,context])提示是必需的參數。它包含您在對話框中看到的消息。它也可以用於顯示各個變量的值。
所有其他參數都是可選的。
[按鈕] - 確定在MSGBox中顯示哪些按鈕和圖標。例如,如果我們使用選項vbokonly ,則只會顯示OK按鈕。即使您錯過了此參數,默認情況下使用此按鈕。
[標題] - 您可以在這裡指定消息框的標題。
讓我們從單詞切換到練習並開始調試。要顯示該消息,請在用戶定義的函數之間的代碼中添加以下行,然後再運算符:
這是我們將得到的結果:
使用對話框中的VMAX變量,我們將看到哪些數字符合選擇標準,以便我們可以選擇其中最大的標準。在標題欄中的“ Count -&i”一詞中,我們指出我們已經選擇了多少個數字來確定最大值。每個新值將增加計數器。
一旦擁有UDF集,我們就將以下公式應用於日期範圍:
= GetMaxBetween (A1:A6,10,50)
按下Enter按鈕後,您將在下面的屏幕截圖中看到一條消息:
這是符合標準的範圍A1:A6中的第一個數字:大於10但小於50。
單擊“確定”後,將出現第二個消息,其中數字14。其餘數字與選擇標準不匹配。因此,該函數退出並返回兩個值中最大的17。
MSGBox函數可用於自定義功能中最重要的位置,以控制單個變量的值如何變化。當您擁有較大功能和大量計算時,消息框可能非常有用。在這種情況下,您可以輕鬆確定錯誤發生的代碼的哪一部分。
確定停止點並逐步執行
您可以在代碼執行停止的函數代碼中添加斷點。因此,您可以逐步遵循計算過程。在此過程中,您可以看到變量的值如何變化。
要添加斷點,請將光標放在包含您選擇暫停的語句的行上。然後右鍵單擊並選擇調試 - >切換斷點或僅按F9 。您也可以單擊功能代碼左側的垂直灰色區域的所需位置。
正如您在下面的屏幕截圖中看到的那樣,將會出現一個紅色圓圈。以紅色突出顯示計算將停止的代碼線。
現在,當功能運行時,VBA編輯器窗口將打開。光標將定位在您停止的點。
如果將鼠標光標懸停在功能代碼中的任何變量上,則可以看到其當前值:
按F5繼續計算。
筆記。斷點後,您可以逐步跟踪計算的進度。如果按F8按鈕,將僅執行VBA代碼的下一行。帶有箭頭的黃線也將移至最後執行的代碼位置。
由於該函數的執行再次暫停,因此您可以使用鼠標光標查看函數所有變量的當前值。
F8的下一批出版社將使我們向前一步。因此,您可以按F8直到計算結束。或按F5繼續計算直至下一個斷點。
如果發生錯誤,則光標將停止在發生錯誤發生的代碼的點。您還將看到一條彈出錯誤消息。這使確定問題的原因變得容易。
您指定的斷點將被應用於關閉文件。重新打開它時,您需要再次設置它們。不是最方便的方法,您不覺得嗎?
但是,可以解決此問題。在必要的點將stoert語句插入功能代碼中,您可以以與使用斷點時相同的方式停止程序執行。
當VBA遇到停止語句時,它將停止執行程序並等待您的操作。檢查變量的值,然後按F5繼續。
或按F8如上所述逐步完成函數。
停止語句是程序的一部分,因此沒有像斷點一樣刪除。完成調試後,請自己刪除。或通過單個報價(')在之前將其變成評論。
使用DEBUG.PRINT運算符進行調試
您可以將debug.print放在功能代碼中的print。這對於檢查週期性變化的變量值很有用。
您可以在下面的屏幕截圖上看到Debug.print的性能的示例。
語句debug.print I,vmax打印值及其序數。
在接下來的窗口中,您可以從所選範圍內看到兩個數字(17和14),這對應於設定限制,其中將選擇最大值。數字1和2表示該函數已完成了選擇數字的2個週期。我們看到了最重要的變量的值,就像MSGBox之前所做的那樣。但這並沒有停止該功能。
從過程中調用功能
您可以調用用戶定義的函數,而不是來自工作表中的單元格,而是從一個過程中調用。在這種情況下,所有錯誤將顯示在“ Visual Basic Editor”窗口中。
這是您可以從一個過程中調用用戶定義的函數getMaxber的方式:
將光標放置在代碼中的任何位置,然後按F5 。如果功能沒有錯誤,您將看到一個帶有計算結果的彈出窗口。
如果發生錯誤,您將在VBA編輯器中看到一條相應的消息。計算將停止,並且發生錯誤的代碼線將以黃色突出顯示。您可以輕鬆地確定錯誤發生的位置和原因。
就這樣。現在,您已經創建了自己的加載項,將其添加到Excel中,並且可以在其中使用UDF。如果要使用更多UDFS,只需在VBA編輯器中的“加載項”模塊中寫入代碼,然後保存。
就是這樣。我們涵蓋了調試自定義功能的不同方法,並學會瞭如何在您的工作簿中使用它們。我們真的希望您發現這些準則有所幫助。如果您有任何疑問,請在本文的評論中寫下。
以上是了解如何在Excel中調試自定義功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Google主張Countif:綜合指南 本指南探討了Google表中的多功能Countif函數,展示了其超出簡單單元格計數的應用程序。 我們將介紹從精確和部分比賽到Han的各種情況

本教程提供了共享Excel工作簿,涵蓋各種方法,訪問控制和衝突解決方案的綜合指南。 現代Excel版本(2010年,2013年,2016年及以後)簡化了協作編輯,消除了M的需求

本教程探討了將.xls文件轉換為.jpg映像的各種方法,包括內置的Windows工具和免費的在線轉換器。 需要創建演示文稿,安全共享電子表格數據或設計文檔嗎?轉換喲

本教程闡明了Excel名稱的功能,並演示瞭如何定義單元格,範圍,常數或公式的名稱。 它還涵蓋編輯,過濾和刪除定義的名稱。 Excel名稱雖然非常有用,但通常是氾濫的

本教程闡明了平均值的標準偏差和標準誤差之間的區別,指導您掌握標準偏差計算的最佳Excel函數。 在描述性統計中,平均值和標準偏差為interinsi

該Excel教程演示瞭如何計算正方根和n根。 找到平方根是常見的數學操作,Excel提供了幾種方法。 計算Excel中正方根的方法: 使用SQRT函數:

解鎖Google表的力量:初學者指南 本教程介紹了Google Sheets的基礎,這是MS Excel的強大而多才多藝的替代品。 了解如何輕鬆管理電子表格,利用關鍵功能並協作


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3漢化版
中文版,非常好用

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境