搜索
首页专题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

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器