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

VBA代码库09:增强CELL函数和INFO函数

excelperfect 本文介绍定义函数来源于wellsr.com,以ExcelCELL函数和INFO函数为样板,可直接返回工作表工作簿名称工作簿路径,以及与Excel及其操作环境有关各种信息...本文对其内容进行了整理并分享于此,希望能够有助于VBA代码学习,同时留存这个自定义函数以备所需。...语句中引用则错误) ' 或者, Target应该是单元格地址(如A1Sheet1!...NameOf函数参数Target是Range对象,默认为公式所引用单元格即Application.ThisCell。如果指定Target,则必须是单元格地址如A1Sheet1!...A1’[示例工作簿.xlsm]Sheet1’!A1。 如果在VBA中使用NameOf函数,那么参数Target必须是Range对象如Range(“A1”)Cells(1)ActiveCell。

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

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

Bug是导致程序无法正常运行代码错误。可以将bug视为类似于错误(error),尽管这两个术语在编程界具有不同含义。 错误(有时称为运行时错误)是阻止程序运行问题。...如果处理不当,将有可能导致程序在其运行时中止。你可以在第26课中了解有关处理运行时错误信息。 相反,bug不会阻止程序运行。而是,它导致程序产生不正确结果。...监视表达式可以是任何VBA表达式,例如程序变量、对象属性函数调用。通过设置监视,你可以关注变量属性值以查看其是否以及何时更改。 可以使用多种方法来使用监视表达式: 可以监视其值。...要点回顾 本课程向你展示了如何使用VBA调试工具,并探讨了发布Excel应用程序时涉及因素。 程序bug是使程序无法正确运行代码错误。...VBA监视可让你在程序执行期间跟踪程序变量值。 自我测评 1.运行时错误与程序错误有何不同? 2.如何在代码中设置断点? 3.逐语句执行命令和逐过程执行命令有什么区别?

5.7K10

Excel VBA解读(164):错误处理技术之On Error语句

学习Excel技术,关注微信公众号: Excelperfect 好应用程序应该能够捕获错误并进行相应处理,而不是VBA弹出错误消息。正如上文提到,有两种方法处理运行时错误。...对于可预见错误,编写特定代码来处理它们。对于不可预见意外错误,则使用VBA错误处理语句来处理。 在VBA中,On Error语句用于错误处理。当代码运行时发生错误时,该语句将执行相应操作。...2.On Error GoTo [标签] 当错误发生时,代码移至指定标签处,不会显示错误消息。 3.On Error GoTo -1 清除当前错误。...可以使用On Error GoTO [标签]语句,让错误发生时执行标签处预先定义操作,避免应用程序中止。...: '产生"应用程序定义"错误 Error (1034) End Sub 代码中发生第一个错误导致代码跳至标签errH处,而第二个错误会导致代码直接停止在错误行,如下图6所示。

7.7K20

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

16.是非题:保护工作簿密码可防止用户查看你VBA代码。 错误。必须使用“项目工程属性”对话框中“保护”选项卡,将VBA工程与设置给工作簿任何密码分开锁定。...21.当程序在断点处暂停时,确定程序变量当前值最快方法是什么? 将鼠标指针悬停在变量名称上。 22.是非题:监视窗口中值在程序运行时会不断更新。 错误。监视值仅在程序进入中断模式时才更新。...23.VBA如何将bugs报告给程序员? 不会。除了测试程序外,没有其他方法可以找到bugs。 24.是非题:最终用户必须具有已安装Excel版本才能运行Excel应用程序。 不一定。...没有Excel程序,但安装了Excel查看器,也可以运行Excel应用程序。 25.自定义VBA代码放在哪里? 在一个类模块中。 26.是非题:自定义VBA类可以包含可视化界面。 错。...31.类方法与常规VBA过程有何不同? 除了在类模块中之外,没有什么不同。 32.什么是辅助方法? 仅应从类内部而不是类外部代码调用方法。 33.在销毁对象之前触发了什么事件?

4.2K20

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

学习Excel技术,关注微信公众号: excelperfect 主要内容: 理解运行时错误及其原因 如何在过程中启用错误捕获 使用Err对象 编写错误处理代码 延迟错误处理 使用错误作为编程工具 运行时错误是在程序运行时发生错误...在程序运行时发生程序错误称为运行时错误,重要是要理解运行时错误只是错误)与在VBA程序中可能发生其他两类问题之间区别: bug是程序逻辑中缺陷,会导致程序产生不正确结果。...如果程序在VBA编辑器中运行,则可以使用此按钮暂停程序并突出显示发生错误代码行。但是,如果工程使用密码锁定(由于几乎总是锁定分发应用程序),则“调试”选项将不可用。 帮助。...集中通过一个几个过程进行一些错误处理可能很诱人,但建议你避免这种做法,并为每个过程赋予其自己错误处理代码。 提示:错误处理对于所有VBA过程(包括函数和类方法)都以相同方式工作。...无法准确定义属于此类别的错误,严重错误必须在一个程序中捕获,而在另一个程序中可能会被接受。同样,程序员有责任熟悉可能发生错误,以及它们如何与特定程序相关联。

6.7K30

VBA: 提高 VBA 宏性能 8 个技巧

文章背景: 作为VBA新手,在运行自己编写代码时,可能会遇到VBA运行缓慢问题。可以采取以下8个措施来提高运行效率。...1 关闭除VBA必需品之外所有东西2 通过系统设置禁用Office动画3 删除不必要Select方法4 使用With语句读取对象属性5 使用 ranges 和 arrays6 使用....Value2 而不是 .Text .Value7 绕过剪贴板(复制和粘贴)8 使用 Option Explicit 捕捉未声明变量 1 关闭除VBA必需品之外所有东西 加速 VBA...代码时要做第一件事就是在宏运行时关闭不必要功能,例如动画、屏幕更新、自动计算和事件。...Setting Option Explicit requires all variables to be declared and will give compile errors if an undeclared

3.2K30

VBA专题07:使用VBA读写Windows注册表

Windows注册表用于存储与计算机相关各种设置,VBAGetSetting函数和SaveSetting函数能够读写Windows注册表,这样,我们不仅能够获取应用程序和硬件信息,也可以将应用程序信息存储在注册表中以供使用...SaveSetting SaveSetting语句在Windows注册表中创建保存一个应用程序项。...3.参数key,必需,字符串类型,指定要保存注册表项名称。 4.参数setting,必需,字符串类型数值类型,指定key设置值。...3.VB把setting作为字符串值写入注册表中。如果setting不是字符串,则会试图把它改成字符串以便写入注册表。 4.如果不能保存设置,则会导致运行时错误。...DeleteSetting DeleteSetting语句删除应用程序子键数值项。

3.5K10

Excel VBA解读(163):错误处理技术之概述

On Error Resume Next 忽略错误,代码继续运行。 On Error Goto [标签] 当发生错误时,跳转到指定标签处执行。 Err对象 当发生错误时,存储错误信息对象。...概述 错误处理是指为处理应用程序运行时发生错误而编写代码。这些错误通常是由编写代码的人无法控制事情所引起,例如文件丢失、数据库不可用、数据无效等。...这就是VBA错误处理语句起作用地方,它们使我们应用程序能够优雅地处理所有意外错误。...VBA错误类型 在VBA中,有3类错误: 1.语法错误 2.编译错误 3.运行时错误 使用错误处理来处理运行时错误。...图2 在编写代码时,我们可以经常运行菜单栏中“调试—编译”命令,及早发现编译错误。如果菜单“调试”下“编译”命令为灰色,表明代码不存在编译错误运行时错误 程序运行时会发生运行时错误

3.7K10

Excel VBA编程

sub过程中参数传递 自定义函数,function过程 声明一个自定义函数 使用自己定义函数 function example 设置函数为易失性函数,让自定义函数也能重复计算 操作对象 VBA中常用对象...代表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

降本增笑P0事故背后,是开猿节流引发代码异常吗?

然而对于 .NET 而言(以 C# 为例),错误和异常定义依然取决于是否是运行时可恢复这一条件。...2.1.3 专用全局错误对象——VB/VBA Visual Basic Visual Basic for Application 中在 errno 思想上将运行时错误扩展成一个全局对象 Err。...❌ 缺乏并发支持 VB/VBA 比较早期集成化开发环境,不具备多线程乃至协程开发能力 2.2 返回值即错误 全局变量中无论是错误码、错误栈、还是错误对象都不可避免会出现变量多线程、多协程访问冲突问题...⚠️ 强制错误码单独契约定义 只能靠业务团队约束,自行使用枚举定义使用集中化错误码,如果非要使用 -1 也没辙,所以某些系统没事儿报个“系统错误“网络错误”也是极其不负责任做法。...应用程序可以注册一个函数来观察处理应用程序所有异常。相较于 SEH,VEH 处理器并不基于帧,因此,你可以添加一个处理器,无论你在调用帧何处,它都会被调用。

960101

降本增笑背后,是开猿节流异常

然而对于 .NET 而言(以 C# 为例),错误和异常定义依然取决于是否是运行时可恢复这一条件。...2.1.3 专用全局错误对象——VB/VBA Visual Basic Visual Basic for Application 中在 errno 思想上将运行时错误扩展成一个全局对象 Err。...❌ 缺乏并发支持 VB/VBA 比较早期集成化开发环境,不具备多线程乃至协程开发能力 2.2 返回值即错误 全局变量中无论是错误码、错误栈、还是错误对象都不可避免会出现变量多线程、多协程访问冲突问题...⚠️ 强制错误码单独契约定义 只能靠业务团队约束,自行使用枚举定义使用集中化错误码,如果非要使用 -1 也没辙,所以某些系统没事儿报个“系统错误“网络错误”也是极其不负责任做法。...应用程序可以注册一个函数来观察处理应用程序所有异常。相较于 SEH,VEH 处理器并不基于帧,因此,你可以添加一个处理器,无论你在调用帧何处,它都会被调用。

23820

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

学习Excel技术,关注微信公众号: excelperfect 在正式将VBA引入我们应用程序之前,让我们先了解Excel应用程序四个阶段:开发与维护、启动、运行和关闭。...3.构建打开动态用户接口元素,包括特定应用程序功能区选项卡、Excel应用程序设置、工作簿模板,等等。 4.注册用户自定义函数。...2.处理Excel应用程序事件。应用程序响应由Excel操作所引发事件。 3.处理运行时错误。当运行时发生错误时,进行处理,避免程序死锁,同时告知用户错误信息。 4.调用其他加载宏中代码。...在运行时加载宏提供其他服务,例如用户自定义函数。 关闭 无论是应用程序正常结束还是异常终止,必须完成下面的操作: 1.删除所有特定程序用户接口组件。...也就是说,要删除在应用程序启动阶段所创建各种元素,包括功能区选项卡元素、特定应用程序工作表、特定快捷菜单。 2.注销所有的用户自定义函数。

1.4K20

在Excel中自定义上下文菜单(上)

标签:VBA,用户界面 上下文菜单(也称为快捷菜单)是在一些随用户交互之后出现菜单,通常是鼠标右键单击操作。...在Microsoft Office中,上下文菜单提供了一组在应用程序的当前状态上下文中可用有限选项。通常,可用选择是与选定对象(如单元格列)相关操作。...然而,也可以自定义许多其他上下文菜单。例如,在行列标题上单击鼠标右键时显示行和列上下文菜单。...图1 在Excel中自定义上下文菜单 在Excel 2007以前版本中自定义上下文菜单唯一方法是使用VBA代码,然而,在Excel 2007后续版本中,还可以使用相同功能区扩展性(RibbonX)...RibbonX模型用于自定义Microsoft Office Fluent用户界面的其他组件,包括功能区和后台视图。 使用RibbonX自定义上下文菜单优点之一是,可以添加无法使用VBA添加控件。

2.6K40

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

当代码与此应用程序版本或体系结构不兼容(例如文档中代码面向 32 位 Microsoft Office 应用程序,但它试图在 64 位 Office 上运行)时,通常会发生此错误。...1 此错误原因和解决方案 此错误原因: 当受保护(隐藏)模块内 VBA 代码中存在编译错误时会引发此错误。由于模块是受保护状态,因此不会公开具体编译错误。...可能解决方案: (1)如果您具有访问文档项目中 VBA 代码权限,请先取消对该模块保护,然后再次运行该代码以查看具体错误。...2 更新旧版本VBA代码 对于在 Office 2010 版本之前(VBA 版本 6 和更早版本)编写 VBA 代码,需要修改为在 64 位 Office 版本中运行,否则在 64 位平台上运行时会导致错误...此外,还必须更新任何包含指针句柄以及 64 位整数用户定义类型 (UDT),使之使用 64 位数据类型,同时,必须验证所有变量赋值是否正确,以防止发生类型不匹配错误

11K10

啰哩啰嗦地讲透VBA中引用单元格区域18个有用方法--Range属性

VBA允许用户以多种不同方式引用单元格区域。 什么是Range对象 Range对象代表工作表中单元格区域,这意味着可以使用Range对象来引用: 单个单元格 一行一列单元格。...2.用于返回Range对象相关属性方法。这是适用于引用Range对象特定规则,这也是本文所要讲解主要内容。 完全限定VBA对象引用介绍 对象能够作为其他对象容器。...特别是,这里并没有指定所引用特定Excel工作簿工作表。为此,必须理解下面的内容。 从集合中引用对象VBA中,对象集合是一组相关对象。...这种简化比前一种更复杂,因为它依赖于正确识别活动工作簿和工作表,这比识别Excel应用程序本身稍微困难一些。 然而,也可以使用这两个默认对象创建更简单VBA对象引用。...可以使用两种不同语法来定义想要处理单元格区域。 语法1:(“Cell1”) 这是定义相关单元格区域时必须包含最小值。

5.9K20

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

Python不接受像第二个示例那样格式化代码:它强制你将可视缩进与代码逻辑对齐,从而防止可读性问题。Python依赖缩进来定义代码块,就像您在if语句for循环中使用代码块一样。...如果你希望在VBA中优雅地处理错误,它是这样: Sub PrintReciprocal(number As Variant) '如果number是0字符串,则会产生错误 On Error...如果你是一名精通VBA开发人员,可能还喜欢Python支持类继承这一事实,这是VBA中缺少面向对象编程功能。 除了现代语言特性外,现代编程语言还有另一个要求:跨平台兼容性。...而且,由于Python程序在所有主要操作系统上运行时都不需要修改,因此当从本地机器过渡到生产设置时,这将减轻很多转换麻烦。...通过学习如何将Excel与Python相结合,你可以在这两个方面都获得优势,并通过自动化节省时间,且因为遵循编程最佳实践更容易而犯更少错误,此外,如果需要,将能够在Excel之外扩展应用程序

2.5K10

在Excel中自定义上下文菜单(中)

标签:VBA,用户界面 本文接上篇文章: 在Excel中自定义上下文菜单(上) 使用RibbonX将控件添加到单元格上下文菜单 在下面的示例中,将创建与上文描述示例相同按钮和子菜单,但使用RibbonX...8.在VBE标准模块中粘贴输入下面的代码: Sub ToggleCaseMacro(control As IRibbonControl) Dim CaseRange As Range...10.选择该上下文菜单中添加定义选项,查看其对单元格文本影响。...使用VBA代码RibbonX将动态菜单添加到单元格上下文菜单 动态菜单指向在运行时创建菜单回调过程。dynamicMenu控件包含指向GetContent回调过程getContent属性。...图4 例如,下面的VBA代码在运行时使用两个按钮构建动态菜单,这意味着只有单击上下文菜单上菜单控件才能创建动态菜单。

1.6K40
领券