首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Excel编程周末速成班第24课:调试和发布应用程序

Bug是导致程序无法正常运行代码错误。可以将bug视为类似于错误(error),尽管这两个术语在编程界具有不同含义。 错误(有时称为运行时错误)是阻止程序运行问题。...如果处理不当,将有可能导致程序在其运行时中止。你可以第26课中了解有关处理运行时错误信息。 相反,bug不会阻止程序运行。而是,它导致程序产生不正确结果。...由于实际上存在无限数量潜在bug,因此无法列出或描述Excel程序中可能出现错误。以这种方式思考——程序应该做任何事情都可能做错。 虽然VBA会向你报告错误,但没有对于bug处理机制。...可以使用多种方法来使用监视表达式: 可以监视其值。VisualBasic“监视”窗口中显示表达式值(定义监视表达式,此窗口会自动打开)。每当程序进入中断模式,显示值都会更新。...要点回顾 本课程向你展示了如何使用VBA调试工具,并探讨了发布Excel应用程序时涉及因素。 程序bug是使程序无法正确运行代码错误

5.7K10

答案:Excel VBA编程问答33题,继续……

10.当用户在任何工作表中进行修改操作,将触发哪个事件? Workbook.SheetChange事件。 11.用户如何阻止打开工作簿触发Open事件? 按住Shift键。...16.是非题:保护工作簿密码可防止用户查看你VBA代码。 错误。必须使用“项目工程属性”对话框中“保护”选项卡,将VBA工程与设置给工作簿任何密码分开锁定。...17.是非题:一个bug阻止程序运行。 错误。bug会阻止程序正常运行,但不会阻止程序运行。 18.程序何时应该使用Option Explicit语句? 总是应该使用。...22.是非题:监视窗口中程序运行时会不断更新。 错误。监视值仅在程序进入中断模式才更新。 23.VBA如何将bugs报告给程序员? 不会。除了测试程序外,没有其他方法可以找到bugs。...24.是非题:最终用户必须具有已安装Excel版本才能运行Excel应用程序。 不一定。没有Excel程序,但安装了Excel查看器,也可以运行Excel应用程序

4.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

Excel编程周末速成班第26课:处理运行时错误

学习Excel技术,关注微信公众号: excelperfect 主要内容: 理解运行时错误及其原因 如何在过程中启用错误捕获 使用Err对象 编写错误处理代码 延迟错误处理 使用错误作为编程工具 运行时错误程序运行时发生错误...程序运行时发生程序错误称为运行时错误,重要是要理解运行时错误(或只是错误)与VBA程序中可能发生其他两类问题之间区别: bug是程序逻辑中缺陷,会导致程序产生不正确结果。...如果程序VBA编辑器中运行,则可以使用此按钮暂停程序并突出显示发生错误代码行。但是,如果工程使用密码锁定(由于几乎总是锁定分发应用程序),则“调试”选项将不可用。 帮助。...程序中错误捕捉永远不会被激活。 不幸是,Microsoft尚未提供有关对象内部捕获哪些错误以及将哪些错误传递给VBA进行处理任何信息。...但是,如果没有打开,则会发生错误。程序可以无法提前知道是否打开特定工作簿情况下使用此功能。清单26-3展示了一个函数,该函数在打开返回对工作簿引用,或者没有打开返回Nothing。

6.7K30

VBA: 隐藏模块中出现编译错误解决对策

文章背景: 最近发现有些办公电脑打开一些excel文件(xls格式),会弹出一个对话框,显示""隐藏模块中出现编译错误:"。...当代码与此应用程序版本或体系结构不兼容(例如文档中代码面向 32 位 Microsoft Office 应用程序,但它试图 64 位 Office 上运行),通常会发生此错误。...通过64位office软件打开早期excel文件,如果代码中存在早期面向32位office编写VBA代码,可能会存在上述编译错误。...2 更新旧版本VBA代码 对于 Office 2010 版本之前(VBA 版本 6 和更早版本)编写 VBA 代码,需要修改为 64 位 Office 版本中运行,否则在 64 位平台上运行时导致错误...只有 64 位版本 Microsoft Office 中运行 VBA 代码,才需要修改 VBA 代码。

11K10

Excel 旧用户正成为恶意软件目标

当用户打开文档并启用宏功能,Word文档就会下载并打开另一个受密码保护Microsoft Excel文档。...攻击者可以利用DDE和VBA来实现这个目标,而这两个功能是标准微软工具随Windows系统提供。 DDE是一种应用程序(如Excel和Word)之间传输数据方法。...对于Zloader,恶意软件会使用Word中信息更新电子表格单元格内容。Word文档可以读取下载.XLS文件中特定Excel单元格内容,然后使用基于WordVBA指令填充Excel文档。...而VBA则是微软用于Excel、Word和其他Office程序编程语言,VBA允许用户使用宏记录器工具创建命令字符串。...一旦Excel宏被创建并准备好执行,脚本将修改Windows注册表键以禁用受害者计算机上VBA信任访问。这使得脚本能够无缝地执行功能,而不会弹出任何警告。

4.6K10

攻击者如何使用 XLL 恶意软件感染系统

最近几个月,我们发现使用恶意Microsoft Excel 加载项(XLL) 文件感染系统恶意软件活动有所增加。这种技术 MITRE ATT&CK 中被跟踪为T1137.006。...我们看到活动中,带有恶意 XLL 附件或链接电子邮件被发送给用户。双击附件打开 Microsoft Excel,提示用户安装并激活加载项。 图 1 – 打开 XLL 文件向用户显示提示。...攻击者通常将他们代码放在xlAutoOpen函数中,该函数加载项被激活立即执行。...使这种技术变得危险是,只需单击一下即可运行恶意软件,这与需要用户禁用 Microsoft Office 受保护视图并启用宏内容 VBA 宏不同。...数据一个循环中解密,首先确定数据位置和大小,然后使用 XOR 操作对其进行去混淆处理。每 8 个字节后,密钥被相乘并添加到两个不同常量。 图 9 – 自定义 Excel 加载项解密循环

2.1K10

《Python for Excel》读书笔记连载2:为什么为Excel选择Python?(续)

这使得阅读和理解代码变得容易,也使得发现错误变得更容易。第二个版本中,对代码不熟悉开发人员第一次浏览可能看不到ElseIf和Else条件,如果代码是较大代码库一部分,尤其如此。...缺少对科学计算支持是VBA一个明显限制。但是,即使看看核心语言特性,VBA也落后了,这在下一节中会看到。 现代语言特征 自Excel 97以来,VBA语言语言特性方面几乎没有任何重大变化。...然而,这并不意味着VBA不再受支持:Microsoft每一个新版本Excel中都会提供更新,以便能够自动化该版本中引入Excel功能。...而且,由于Python程序在所有主要操作系统上运行时都不需要修改,因此当从本地机器过渡到生产设置,这将减轻很多转换麻烦。...通过学习如何将Excel与Python相结合,你可以在这两个方面都获得优势,并通过自动化节省时间,且因为遵循编程最佳实践更容易而犯更少错误,此外,如果需要,将能够Excel之外扩展应用程序

2.5K10

递归编程

注意,递归编程,必须小心构建代码,以便在满足某些条件正确终止程序。Fact函数过程中,我们N小于或等于1结束递归调用。...你递归代码必须具有某种终止递归调用转义逻辑,如果没有这种转义逻辑,代码将不断循环,直到 VBA 运行时因堆栈空间不足错误而中止处理。...注意,你无法使用常规错误捕获来捕获堆栈空间外错误,这被称为不可捕获错误,将立即终止所有VBA代码执行,且不能从无法捕获错误中恢复。...End If R = AddUp(N + 1) AddUp = R End Function 在这段代码中,没有任何条件阻止AddUp过程调用其自身,对AddUp过程每次调用都会导致对...该函数将继续不受限制地调用自身,直到VBA运行时中止过程执行序列。 示例:列出文件夹及子文件夹 下面的代码工作表中列出指定文件夹中所有子文件夹。

76230

Excel编程周末速成班第22课:使用事件

主要内容: Excel事件类别 编写事件处理程序代码 启用和禁用事件 工作簿、工作表和应用程序级事件 如何使用与对象无关事件 事件是Excel编程重要组成部分。...第20课中对事件进行过介绍,涉及到用户窗体控件以及他们可以响应一些事件。理解和使用Excel事件是创建易于使用响应式应用程序重要工具。...你可以手动输入事件过程,但是这样自动输入功能可以节省时间并减少错误。 注意:如果你没有为事件创建事件过程,或者该事件过程不包含任何代码,则Excel将忽略该事件。...图22-1:代码编辑窗口输入事件过程 事件顺序 处理事件,你需要了解某些操作会导致触发Excel多个事件。在这些情况下,多个事件以特定顺序发生。...注:本文是知识星球App完美Excel社群中发表Excel VBA编程系列文章《Excel编程周末速成班第22课:使用事件》中一部分内容。

2.8K10

使用VBA复制文件:5个示例代码

标签:VBA,FileCopy方法 我们可以使用VBA来复制文件,这里介绍5个实现VBA复制文件示例。...示例4:VBA复制之前检查文件是否存在 FileCopy命令将覆盖文件,而不会显示任何错误。因此,复制文件之前,最好先检查文件是否已经存在。 下面的代码检查目标位置中是否存在文件。...下面的代码构建在示例4基础上,如果出现任何错误,也会显示一个错误消息框。..." End If On Error GoTo 0 End Sub 自动化复制文件可能会导致错误,下面是一些常见错误: 复制不存在文件会触发错误运行时错误’53’:找不到文件。...将文件复制到锁定文件位置(即另一个用户打开了该文件)会触发错误运行时错误‘0‘:权限被拒绝

2.9K50

VBA专题10-23:使用VBA操控Excel界面之添加动态菜单

学习Excel技术,关注微信公众号: excelperfect 本系列后面的示例程序中,你将会看到如何使用项目和带图像库控件通过getItemLabel和getItemImage回调属性引用VBA...通过该控件getContent属性引用VBA过程,在运行时为菜单内容构建XML代码。...单击工具栏中Validate按钮检查是否有错误。 7. 保存并关闭该文件。 8. Excel打开该文件。对于弹出错误消息,单击“确定”。 9. 按Alt+F11激活VBE。 10....如果要保留条件,可以在其被无效前存储其状态,然后重新创建菜单恢复其状态。这可以通过使用模块级变量和getPressed回调属性来实现。...VBE中,选择运行|重新设置。 当VBE显示标准错误消息框(因为一个未处理运行时错误发生),可以单击消息框中结束按钮。 关闭该工作簿文件。

5.9K20

Excel VBA编程问答33题,继续……

10.当用户在任何工作表中进行修改操作,将触发哪个事件? 11.用户如何阻止打开工作簿触发Open事件? 12.什么是数据验证? 13.你应该在何处放置工作簿级别事件事件过程?...14.如何定义一天特定时间执行代码? 15.如何允许用户查看工作簿但不能进行修改? 16.是非题:保护工作簿密码可防止用户查看你VBA代码。 17.是非题:一个bug阻止程序运行。...18.程序何时应该使用OptionExplicit语句? 19.什么是断点? 20.调试命令“逐过程”和“逐语句”之间有什么区别? 21.当程序断点处暂停,确定程序变量当前值最快方法是什么?...22.是非题:监视窗口中程序运行时会不断更新。 23.VBA如何将bugs报告给程序员? 24.是非题:最终用户必须具有已安装Excel版本才能运行Excel应用程序。...31.类方法与常规VBA过程有何不同? 32.什么是辅助方法? 33.销毁对象之前触发了什么事件? 如果有兴趣,可以留言中写下你答案。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

1.8K30

Excel宏教程 (宏介绍与基本使用)

大家好,又见面了,我是你们朋友全栈君。 Excel宏教程 (宏介绍与基本使用) Microsoft excel是一款功能非常强大电子表格软件。...但excel强大远远超过人们想象–宏引入使其具有了无限扩展性,因而可以很好地解决复杂数据处理问题。...为了统一各种应用程序宏,Microsoft推出了VBA(Visual Basic for Applications)语言。...除此之外,使用 VBA语言还有如下优点:1、VBA是一种通用程序语言,通过它不仅可以共享Microsoft相关各种软件(如excel、 word、access)……,而且随着其它一些软件(如大名鼎鼎...$A$1:$A$6)” 5、避免循环引用 在上述公式赋值过程中,应避免公式中引用被赋值单元格,防止循环引用错误

6.3K10

《Python for Excel》读书笔记连载1:为什么为Excel选择Python?

开始微软并没有Excel上领先,他们发布Multiplan,一个电子表格程序,可以MS-DOS和其他一些操作系统上使用,但不能在Windows上使用。...有时,这些问题可能会产生毁灭性后果:如果你进行交易之前忘记重新计算交易工作簿,可能会买卖错误数量股票,这可能会导致你赔钱。...如果你有多个一直使用函数,可能希望工作簿之间共享它们。跨工作簿共享VBA代码标准工具是加载宏,但VBA加载宏缺乏一种可靠分发和更新方式。...虽然Microsoft引入了Excel网络加载宏商店来解决该问题,但这只适用于基于JavaScript加载宏,因此VBA编码人员没有选择。这意味着VBA使用复制/粘贴方法仍然非常常见。...然而,这是一种危险策略:Excel使引入难以发现错误变得容易。例如,可以使用硬编码值覆盖公式,或者忘记调整隐藏列中公式。 当告诉专业软件开发人员测试他们代码,他们会编写单元测试。

5.2K20

Excel VBA高级筛选技巧

如果现在尝试运行它,将得到“运行时错误1004’:Range类AdvancedFilter方法失败”错误,因为尚未定义参数Action,该参数告诉AdvancedFilter是原有区域显示筛选结果还是将筛选结果复制到其他位置...条件区域中空行将匹配所有数据记录,这不是我们想要。相反,Excel将空白单元格(此处为J2)解释为任何值。由于J2在此处为空,因此所有金额(Amount)均有效。...必须定义这些XlFilterActions之一,否则AdvancedFilter方法将发生运行时1004错误失败。...如果不执行此操作,将出现“运行时错误1004’:提取范围有一个缺少或无效字段名”错误。...清除CopyToRange 如果使用XlFilterCopy,Excel将猜测输出区域内要清除内容。但是,可以通过自己清除它来确保更安全。

6.8K50

解密古老而又神秘宏病毒

但是打开携带宏病毒文档,其中命令就会被执行,导致文档所在电脑主机被感染。 打开含有宏文档文件,会遇到"安全警告",单击"启用内容"按钮,宏就会执行。...\使用快捷键Alt+F11可以打开vb编辑器,查看宏代码。 实战研究 如果遇到启用内容后,查看VBA编辑器,弹出了要求输入密码对话框,使用VBA_Password_Bypasser进行解密。...使用VBA_Password_Bypasser打开这个文档文件就可以正常打开VBA编辑器了,而不需要输入密码。...Microsoft Word/Excel 宏文件 -利用 Word/Excel虽然是很老旧,但向受害者发送恶意 Microsoft Office文件仍然是久经考验一种社会工程学攻击方法。...最基础水平上,我们可以使用 Empire 或 Unicorn 来创建一个 VBA 宏: (实际情况,使用empire可以成功反弹shell;使用Unicorn显示生成payload代码版本不兼容office2016

5.5K30

一起学Excel专业开发14:了解Excel应用程序开发四个阶段

学习Excel技术,关注微信公众号: excelperfect 正式将VBA引入我们应用程序之前,让我们先了解Excel应用程序四个阶段:开发与维护、启动、运行和关闭。...启动 应用程序启动要完成了一系列任务: 1.检查运行环境是否满足应用程序要求,包括检查操作系统和Excel版本是否合适、应用程序所依赖其他程序或文件是否存在。...如果启动检查失败,那么应该平稳地退出程序并给出相应错误信息。 2.应用程序退出还原所有设置。...根据加载宏类型以及启动环境条件处理某些特殊设置,例如当打开加载宏,如果应用程序工作簿已处于打开状态,那么应用程序所有功能区选项卡元素和快捷菜单应均设置为可用,反之则应该使大部分功能区元素和快捷菜单项不可用...2.处理Excel应用程序事件。应用程序响应由Excel操作所引发事件。 3.处理运行时错误。当运行时发生错误时,进行处理,避免程序死锁,同时告知用户错误信息。 4.调用其他加载宏中代码。

1.4K20

Excel VBA编程

2.选择插入模块,然后插入过程,选择子程序 VBA语法规则 Excel中,数据只有文本,数值,日期值,逻辑值和错误值五种类型。...代表Excel应用程序(如果在word中使用VBA,就代表word应用程序) Workbook 代表Excel工作簿,一个workbook对象代表一个工作簿文件 worksheet 代表Excel工作表...标签告诉VBA,当程序运行过程中晕倒运行时错误时,跳转到标签所在行代码继续执行程序,实际上就是让程序跳过出错代码,从另一个地方重新开始执行程序。...如果程序一开始加入On Error Resume Next语句,运行程序时,及时程序中存在运行时错误VBA也不会中断程序,而是忽略所有存在错误语句,继续执行出错语句后代码 Sub test()...GoTo 0 使用On Error GoTo 0语句后,将关闭对程序中运行时错误捕捉,如果程序On Error GoTo 0语句后出现运行错误,将不会被捕捉到 Sub test() On

45K21

Excel编程周末速成班第3课:Excel对象模型

如你第1课中所见,Excel应用程序由提供程序功能对象组成。由于这些对象是“公开”(即可以从外部进行操作),因此可以通过VBA代码控制它们以创建自定义程序。...则会发生运行时错误。...提示:你代码应该总是考虑可能错误,尤其是处理文件。为了清楚起见,本课程中示例代码通常会省略错误处理代码,但这并不意味着你可以这样做!...工作簿名称要么是你使用SaveAs方法赋给名称(本课程后面部分介绍),要么是Excel创建新工作簿赋给默认名称(工作簿1、工作簿2,等)。Save方法不带任何参数。...要点回顾 你编写任何VBA程序都将取决于Excel对象模型。本课程向你介绍了此对象模型,并介绍了一些重要背景材料。你本课程上学到东西包括: 你可以通过对象属性和方法来使用它们。

5K30
领券