搜尋
首頁專題excel了解如何在Excel中調試自定義功能

如您已經知道如何創建UDFS(我希望您也嘗試在Excel中應用它們),讓我們更深入地挖掘一下,如果您的用戶定義的功能無法正常工作,請查看可以做什麼。

為了在創建自定義功能時解決一些問題,您很可能需要運行調試。然後,您可以確定該功能正常工作。

我們將探討以下調試技術:

創建自定義功能時,總是有可能犯錯。自定義功能通常非常複雜。而且他們並不總是立即開始正確地工作。公式可能會返回不正確的結果或#Value!錯誤。與標準Excel功能不同,您將看不到任何其他消息。

有沒有辦法逐步瀏覽自定義函數以檢查其每個語句的工作方式?當然!調試用於此。

我將為您提供幾種調試您的自定義功能的方法,以便您可以選擇適合您的功能。

例如,我們從以前的文章之一中使用自定義函數getmaxbet ,該文章計算指定值範圍內的最大數字:

函數getMaxBetew之間(rngcells作為範圍,minnum,maxnum) dim numrange作為dim dim vmax dim dim dim irnums() dim i作為整數redim arrnums(rngcells.counts.counts.countsscounts)rngcells in rngcells中的每個數字vmax = numrange = numrange numrange numrange select case case vmax case vmax case vmax case num 0.01 irnum 0.01 i i)情況

函數參數是編寫數字的單元格,以及值的上限和下限。

將msgbox功能放在重要位置

為了監視計算的執行,您可以在正確位置的屏幕上顯示最重要的變量的值。這可以使用彈出對話框完成。

MSGBOX是一個對話框,您可以使用它向用戶顯示某種消息。

MSGBOX的語法類似於其他VBA函數:

msgbox(提示[,按鈕] [,title] [,helpfile,context])

提示是必需的參數。它包含您在對話框中看到的消息。它也可以用於顯示各個變量的值。

所有其他參數都是可選的。

[按鈕] - 確定在MSGBox中顯示哪些按鈕和圖標。例如,如果我們使用選項vbokonly ,則只會顯示OK按鈕。即使您錯過了此參數,默認情況下使用此按鈕。

[標題] - 您可以在這裡指定消息框的標題。

讓我們從單詞切換到練習並開始調試。要顯示該消息,請在用戶定義的函數之間的代碼中添加以下行,然後再運算符:

msgbox vmax, “ count-” &我

這是我們將得到的結果:

函數getMaxBetew之間(rngcells作為範圍,minnum,maxnum) dim numrange作為dim dim vmax dim dim dim irnums() dim i作為整數redim arrnums(rngcells.counts.counts.countsscounts)rngcells in rngcells中的每個數字vmax = numrange = numrange numrange numrange select case case vmax case vmax case vmax case num 0.01 irnum 0.01 i i) msgbox vmax, “ count-” &情況

使用對話框中的VMAX變量,我們將看到哪些數字符合選擇標準,以便我們可以選擇其中最大的標準。在標題欄中的“ Count -&i”一詞中,我們指出我們已經選擇了多少個數字來確定最大值。每個新值將增加計數器。

一旦擁有UDF集,我們就將以下公式應用於日期範圍:

= GetMaxBetween (A1:A6,10,50)

按下Enter按鈕後,您將在下面的屏幕截圖中看到一條消息:

了解如何在Excel中調試自定義功能

這是符合標準的範圍A1:A6中的第一個數字:大於10但小於50。

單擊“確定”後,將出現第二個消息,其中數字14。其餘數字與選擇標準不匹配。因此,該函數退出並返回兩個值中最大的17。

MSGBox函數可用於自定義功能中最重要的位置,以控制單個變量的值如何變化。當您擁有較大功能和大量計算時,消息框可能非常有用。在這種情況下,您可以輕鬆確定錯誤發生的代碼的哪一部分。

確定停止點並逐步執行

您可以在代碼執行停止的函數代碼中添加斷點。因此,您可以逐步遵循計算過程。在此過程中,您可以看到變量的值如何變化。

要添加斷點,請將光標放在包含您選擇暫停的語句的行上。然後右鍵單擊並選擇調試 - >切換斷點或僅按F9 。您也可以單擊功能代碼左側的垂直灰色區域的所需位置。

正如您在下面的屏幕截圖中看到的那樣,將會出現一個紅色圓圈。以紅色突出顯示計算將停止的代碼線。

了解如何在Excel中調試自定義功能

現在,當功能運行時,VBA編輯器窗口將打開。光標將定位在您停止的點。

如果將鼠標光標懸停在功能代碼中的任何變量上,則可以看到其當前值:

了解如何在Excel中調試自定義功能

F5繼續計算。

筆記。斷點後,您可以逐步跟踪計算的進度。如果按F8按鈕,將僅執行VBA代碼的下一行。帶有箭頭的黃線也將移至最後執行的代碼位置。

由於該函數的執行再次暫停,因此您可以使用鼠標光標查看函數所有變量的當前值。

F8的下一批出版社將使我們向前一步。因此,您可以按F8直到計算結束。或按F5繼續計算直至下一個斷點。

如果發生錯誤,則光標將停止在發生錯誤發生的代碼的點。您還將看到一條彈出錯誤消息。這使確定問題的原因變得容易。

您指定的斷點將被應用於關閉文件。重新打開它時,您需要再次設置它們。不是最方便的方法,您不覺得嗎?

但是,可以解決此問題。在必要的點將stoert語句插入功能代碼中,您可以以與使用斷點時相同的方式停止程序執行。

了解如何在Excel中調試自定義功能

當VBA遇到停止語句時,它將停止執行程序並等待您的操作。檢查變量的值,然後按F5繼續。

或按F8如上所述逐步完成函數。

停止語句是程序的一部分,因此沒有像斷點一樣刪除。完成調試後,請自己刪除。或通過單個報價(')在之前將其變成評論。

使用DEBUG.PRINT運算符進行調試

您可以將debug.print放在功能代碼中的print。這對於檢查週期性變化的變量值很有用。

您可以在下面的屏幕截圖上看到Debug.print的性能的示例。

了解如何在Excel中調試自定義功能

語句debug.print I,vmax打印值及其序數。

在接下來的窗口中,您可以從所選範圍內看到兩個數字(17和14),這對應於設定限制,其中將選擇最大值。數字1和2表示該函數已完成了選擇數字的2個週期。我們看到了最重要的變量的值,就像MSGBox之前所做的那樣。但這並沒有停止該功能。

從過程中調用功能

您可以調用用戶定義的函數,而不是來自工作表中的單元格,而是從一個過程中調用。在這種情況下,所有錯誤將顯示在“ Visual Basic Editor”窗口中。

這是您可以從一個過程中調用用戶定義的函數getMaxber的方式:

sub test() dim x x = getmaxbetween(range( “ a1:a6” ),10,50)msgbox(x) end sub sub

將光標放置在代碼中的任何位置,然後按F5 。如果功能沒有錯誤,您將看到一個帶有計算結果的彈出窗口。

如果發生錯誤,您將在VBA編輯器中看到一條相應的消息。計算將停止,並且發生錯誤的代碼線將以黃色突出顯示。您可以輕鬆地確定錯誤發生的位置和原因。

就這樣。現在,您已經創建了自己的加載項,將其添加到Excel中,並且可以在其中使用UDF。如果要使用更多UDFS,只需在VBA編輯器中的“加載項”模塊中寫入代碼,然後保存。

就是這樣。我們涵蓋了調試自定義功能的不同方法,並學會瞭如何在您的工作簿中使用它們。我們真的希望您發現這些準則有所幫助。如果您有任何疑問,請在本文的評論中寫下。

以上是了解如何在Excel中調試自定義功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Excel中的中位公式 - 實際示例Excel中的中位公式 - 實際示例Apr 11, 2025 pm 12:08 PM

本教程解釋瞭如何使用中位功能計算Excel中數值數據中位數。 中位數是中心趨勢的關鍵度量

Google電子表格Countif函數帶有公式示例Google電子表格Countif函數帶有公式示例Apr 11, 2025 pm 12:03 PM

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

Excel共享工作簿:如何為多個用戶共享Excel文件Excel共享工作簿:如何為多個用戶共享Excel文件Apr 11, 2025 am 11:58 AM

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

如何將Excel轉換為JPG-保存.xls或.xlsx作為圖像文件如何將Excel轉換為JPG-保存.xls或.xlsx作為圖像文件Apr 11, 2025 am 11:31 AM

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

excel名稱和命名範圍:如何定義和使用公式excel名稱和命名範圍:如何定義和使用公式Apr 11, 2025 am 11:13 AM

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

標準偏差Excel:功能和公式示例標準偏差Excel:功能和公式示例Apr 11, 2025 am 11:01 AM

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

Excel中的平方根:SQRT功能和其他方式Excel中的平方根:SQRT功能和其他方式Apr 11, 2025 am 10:34 AM

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

Google表基礎知識:了解如何使用Google電子表格Google表基礎知識:了解如何使用Google電子表格Apr 11, 2025 am 10:23 AM

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

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

SecLists

SecLists

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境