搜尋
首頁專題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中創建時間軸以濾波樞軸表和圖表Mar 22, 2025 am 11:20 AM

本文將指導您完成為Excel Pivot表和圖表創建時間表的過程,並演示如何使用它以動態和引人入勝的方式與數據進行交互。 您的數據在Pivo中組織了

如何在Excel中下拉如何在Excel中下拉Mar 12, 2025 am 11:53 AM

本文說明瞭如何使用數據驗證(包括單個和因列表)在Excel中創建下拉列表。 它詳細介紹了該過程,為常見方案提供解決方案,並討論諸如數據輸入限制和PE之類的限制

如何在Excel中概括一列如何在Excel中概括一列Mar 14, 2025 pm 02:42 PM

本文討論了使用SUM函數,Autosum功能以及如何總和特定單元格中的Excel中總和列的方法。

如何在Excel中製作桌子如何在Excel中製作桌子Mar 14, 2025 pm 02:53 PM

文章討論了Excel中的創建,格式化和自定義表,並使用諸如總和,平均和透視物等功能進行數據分析。

如何在Excel中製作餅圖如何在Excel中製作餅圖Mar 14, 2025 pm 03:32 PM

本文詳細介紹了在Excel中創建和自定義餅圖的步驟,專注於數據準備,圖表插入和個性化選項,以增強視覺分析。

如何計算excel中的平均值如何計算excel中的平均值Mar 14, 2025 pm 03:33 PM

文章討論使用平均功能在Excel中計算平均值。主要問題是如何有效地將此功能用於不同的數據集。(158個字符)

如何在Excel中添加下拉如何在Excel中添加下拉Mar 14, 2025 pm 02:51 PM

文章討論了使用數據驗證在Excel中創建,編輯和刪除下拉列表。主要問題:如何有效管理下拉列表。

您需要知道的所有要對Google表中的所有數據進行排序您需要知道的所有要對Google表中的所有數據進行排序Mar 22, 2025 am 10:47 AM

掌握Google表格分類:綜合指南 在Google表中對數據進行排序不需要復雜。本指南涵蓋了各種技術,從整個床單到特定範圍,按顏色,日期和多個列。 無論你是諾維

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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具