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

Excel vba:全局变量在工作簿打开时赋值;如果发生错误,将被擦除

在Excel VBA中,全局变量可以在工作簿打开时赋值。如果发生错误,可以通过错误处理来擦除全局变量的值。

要在工作簿打开时赋值全局变量,可以使用Workbook_Open事件。在VBA编辑器中,打开工作簿的代码窗口,然后选择工作簿对象,然后选择Open事件。在事件处理程序中,可以编写代码来赋值全局变量。

以下是一个示例:

代码语言:txt
复制
Dim globalVariable As String

Private Sub Workbook_Open()
    On Error GoTo ErrorHandler
    
    ' 赋值全局变量
    globalVariable = "Hello World"
    
    Exit Sub
    
ErrorHandler:
    ' 发生错误时,擦除全局变量的值
    globalVariable = ""
    MsgBox "An error occurred: " & Err.Description
End Sub

在上面的示例中,我们声明了一个名为globalVariable的全局变量。在Workbook_Open事件处理程序中,我们将其赋值为"Hello World"。如果在赋值过程中发生错误,代码将跳转到ErrorHandler标签处,全局变量的值将被擦除,并显示一个消息框显示错误信息。

这是一个简单的示例,你可以根据实际需求进行修改和扩展。在实际应用中,你可以根据需要在工作簿打开时赋值多个全局变量,并根据具体情况进行错误处理。

关于Excel VBA的更多信息,你可以参考腾讯云的Excel VBA开发文档:Excel VBA开发

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

一个示例是Workbook对象,如果尝试打开磁盘上不存在的工作簿,或者尝试将工作簿保存到不存在的磁盘上,则Workbook对象会捕获错误并显示其自己的对话框(如图26-2所示))。...例如,假设你的程序正在尝试打开位于共享网络驱动器上的工作簿文件,可能会发生几种错误错误53,找不到文件 错误76,找不到路径 错误68,设备不可用 错误75,路径/文件访问错误 根据发生错误,可能希望提示用户重试...作为示例,考虑以下代码: Dim wb As Workbook Set wb = Workbooks(“SalesData”) 如果打开名为SalesData的工作簿,则此代码可以正常工作。...但是,如果没有打开,则会发生错误。程序可以无法提前知道是否打开特定工作簿的情况下使用此功能。清单26-3展示了一个函数,该函数在打开返回对工作簿的引用,或者没有打开返回Nothing。...如果此值为Nothing,则程序可以采取步骤打开工作簿

6.7K30

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

则会发生运行时错误。...提示:你的代码应该总是考虑可能的错误,尤其是处理文件。为了清楚起见,本课程中的示例代码通常会省略错误处理代码,但这并不意味着你可以这样做!...一种方法是分别使用Add或Open方法创建或打开工作簿赋值引用,因此: Dim MyNewWB As Workbook Dim MyOpenedWB As Workbook Set MyNewWB...如果指定的工作簿不存在,则会发生错误。 最后,VBA提供了一些特殊的关键字,可用于引用工作簿: ActiveWorkbook,引用当前活动工作簿。...但是,有时一个工作簿中的代码正在处理另一工作簿中的数据,当此类代码需要引用它所在的工作簿而不是要操纵的工作簿,使用ThisWorkbook关键字。在对加载宏进行编程,这种情况最经常发生

5K30

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

单击工具栏中的Validate按钮检查是否有错误。 7. 保存并关闭该文件。 8. Excel打开该文件。对于弹出的错误消息,单击“确定”。 9. 按Alt+F11激活VBE。 10....然而,如果用户设置勾选该复选框后,通过单击工作表标签激活其他工作表,那么动态菜单被无效,与菜单相关的任何数据(包括复选框的勾选条件)将被销毁。...接着,通过使复选框无效前存储复选框状态的Checkbox1Pressed变量重新赋值该复选框的状态。 5. 保存,关闭,然后重新打开工作簿。...VBE中,选择运行|重新设置。 当VBE显示标准的错误消息框(因为一个未处理的运行时错误发生),可以单击消息框中的结束按钮。 关闭该工作簿文件。...如果没有未处理的错误,你可以只执行前两种方法,而用户可以仅执行最后一种方法。因此,只要该工作簿文件保持打开,Checkbox1Pressed变量就能够合适地反映该复选框的状态。

5.9K20

Excel VBA编程

worksheet事件 使用工作簿事件 open事件:当打开工作簿发生 beforeclose事件: 关闭工作簿之前发生 sheetchange事件:更改任意工作表中的单元格发生 常用的workbook...代表Excel应用程序(如果在word中使用VBA,就代表word应用程序) Workbook 代表Excel工作簿,一个workbook对象代表一个工作簿文件 worksheet 代表Excel工作表...模块中,可以【工程资源管理器】中找到这个模块 open事件:当打开工作簿发生 open事件是最常用的workbook事件之一,同国外吗会使用该事件对excel进行初始化设置,如设置想打开工作簿看到的...保存工作簿之前发生 Deavtivate 工作簿状态作为非活动状态发生 NewChart 工作簿新建一个图表发生 Newsheet 工作簿新建一个工作发生 open 打开工作簿发生...on error resume next Resume Next告诉VBA如果程序发生错误,则忽略存在错误的代码,接着执行错误行之后的代码。

45K21

Workbook工作簿对象方法(一)

2、参数的字符串如果指定的是已有的excel文件,那么新建文件会以该excel文件为模板创建新工作簿。新工作簿模板工作簿名的后面加有规律的数字。...二、工作簿对象open方法 使用EXCLE文件VBA代码中打开工作簿是通过workbooks集合的open方法。...这样方便直接更改路径参数fn1变量,同时打开工作簿文件可以方便通过wb1变量来修改属性等。 打开工作簿文件赋值给变量,也可以检测指定工作簿是否打开。...IF判断结构,判断not wb1变量是否被赋值,即If Not wb1 Is Nothing Then, 如果赋值,则弹窗文件打开,否则文件未打开。...3、参数ReadOnly可选,如果设置其值为True,将在只读模式下打开工作簿。 4、参数Password可选,指定打开受保护工作簿需要的密码。

5.8K40

VBA专题10-15:使用VBA操控Excel界面之在功能区中添加自定义标签控件

excelperfect 如果要在功能区选项卡中添加标签,那么执行下面的步骤: 1. 创建新工作簿并保存为启用宏的工作簿。 2. 关闭该工作簿,然后CustomUI Editor中打开工作簿。...getLabel是一个回调属性,赋值VBA过程的名称,本例中为getLabel1回调过程。该过程首次打开工作簿时或者使该控件无效执行。...之后,要将其粘贴到工作簿VBA模块中。 7. 保存并关闭该文件。 8. Excel打开工作簿文件。...因为是第一次Excel打开该文件,会得到关于getLabel1的错误消息的提示,因为标准的VBA模块中还没有getLabel1回调过程。此时,单击“确定”关闭错误消息。 9....注:如果你有兴趣,你可以到知识星球App的完美Excel社群下载这本书的完整中文版电子书。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

2.2K10

VBA专题10-6:使用VBA操控Excel界面之执行命令以及激活功能区选项卡的两种方法

SendKeys方法 例如,下面的VBA代码模拟按下ALT、A和ALT键: Application.SendKeys "%A%" 将上面的语句放在Workbook_Open事件中,在打开工作簿,将激活...创建新工作簿并将其保存为启用宏的工作簿。 3. 关闭该工作簿并在CustomUI Editor中打开。 4....Excel打开该文件。 由于Initialize过程仍然没有准备执行,因此会出现错误消息,单击“确定”。 10. 按Alt+F11打开VBE。 11....中打开工作簿,执行Initialize过程,获取功能区对象引用赋值给myRibbon对象变量。...要激活特定的内置功能区选项卡,例如“数据”选项卡,使用下面的代码: myRibbon.ActivateTabMso "TabData" 如果要在打开工作簿激活“数据”选项卡,Initialize过程中插入上面的语句

3.5K20

Workbook工作簿对象方法(二)

三、工作簿对象activate方法 使用时可打开多个excel工作簿文件,但只有一个excel文件是活动状态。...四、工作簿对象save方法 保存excel工作簿VBA中主要是通过workbook工作簿对象的save方法和saveas方法 代码thisworkbook.save 表示保存代码所在的工作簿。...4、参数Password指定保存的工作簿的密码,区分大小写。 5、参数WriteResPassword指定工作簿的写保护密码。如果使用密码保存工作簿并且在打开未提供密码,则以只读方式打开工作簿。...Workbooks("vba.xlsm").Close 是关闭了单个工作簿vba.xlsm,而workbooks.close则是关闭所有打开工作簿。...关闭工作簿如果excel表有修改且没有保存,那么系统会在关闭前弹窗提示是否需要保存。如果不希望出现弹窗,可以通过设置close方法的参数来修改。 下面看下close方法的完整格式。

4.4K20

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

该语句生效,必须显式声明程序中的每个变量。如果尝试使用未声明的变量,则VBA会显示一条错误消息。这样可以防止漏掉拼写错误的变量名。...除了始终使用OptionExplicit外,还有以下准则可以帮助减少程序bugs: 如果你的程序包含很多代码,将其分成相对较小的过程。大型过程更容易出现bugs,并且发生bug更难修复。...几乎所有需要全局变量或公共变量的情况都可以使用过程参数和函数返回值进行处理。 必要,请确保对数字变量使用浮点数据类型。某些情况下使用整数类型可能会导致舍入错误和bugs。...图24-4:快速监视窗口 发布应用程序 发布Excel应用程序可以是一个简单或复杂的过程。如果你的应用程序是小型办公室内部使用的,则分发可能仅包括使工作簿文件服务器上可用以及向同事发送电子邮件。...例如,要使用Excel应用程序,你必须安装Excel或者Excel查看器。 至少,发布工程需要使包含该工程的Excel工作簿文件可供最终用户使用。

5.7K10

Workbook工作簿对象基础

一、工作簿对象的引用 一个工作簿对象workbook实际就是一个excel文件,vba代码使用时引用它主要有两种方式,一种是通过工作簿对象名称,一种是是通过index索引号。...Workbooks("vba.xlsm").Worksheets.Count表示统计vba.xlsm工作簿对象的普通工作表的数量,引用工作簿对象,表示方法为:Workbooks("vba.xlsm"...注意参数是完整的excel文件名,包括后缀。 2、Workbooks(index索引号) 工作簿对象引用时,index索引号是工作簿的在任务栏的从左至右的顺序(也是工作簿依次打开的顺序。)...电脑打开了三个工作簿,从左至右分别是vba工作簿1,示例表。通过循环来获得三个工作表的名称。...三、Activeworkbook Activeworkbook是指当前活动的工作簿使用excel,都是某个工作簿workbook中进行编辑。

2.7K30

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

有三类事件: 事件始终是用户操作的结果,例如单击用户窗体上的控件或按某个键 用户操作或VBA代码可能引起的事件,例如打开工作簿或激活图表 与用户操作无关的事件,例如一天中的特定时间的发生 总体而言,Excel...大多数情况下,VBA编辑器会为你创建事件过程的框架(第一行和最后一行)。打开代码编辑窗口后,该窗口顶部将显示两个下拉列表(参见图22-1)。...注意:如果你没有为事件创建事件过程,或者该事件过程不包含任何代码,则Excel将忽略该事件。 应该在工程的什么位置放置事件处理过程呢?如果该过程放置错误的位置,即使它的名称正确,也不会响应其事件。...工作簿工作表或图表的事件过程应始终放置与该工作簿关联的工程中。 如果可以在编辑窗口顶部的对象和事件列表中找到对象和事件,则将过程放置在当前模块中。...下面是一个示例:将在工作簿中添加新工作,将按以下顺序触发下列三个应用程序级事件: 当添加新的工作,将发生WorkbookNewSheet。

2.8K10

Excel VBA对象模型

如果你看了官方文档,你应该已经发现Excel VBA里有好多对象,这些对象其实都是有层级关系的,就像一棵树一样,树顶上最高级的是Application,然后不停的分叉,衍生里众多的对象。...这样你关闭了那个唯一打开Excel文件,但是这时候,Excel这个程序并没有退出,你还可以看到1个界面,这个就是我们安装目录里,那个叫做EXCEL.EXE(我们双击打开这个,会自动创建1个新的工作簿)...工作簿 Workbooks 国的集合 所有打开工作簿 Worksheet 家 工作簿里的工作表 Worksheets 家的集合 1个工作簿里所有的工作表 Range...3、打开1个工作簿的时候,Excel到底做了些什么 我们电脑上的Excel文件,其本质只是硬盘上的一些数据,也就是010101那种东西。...所以很多读取属性的语句是要比赋值语句快很多。 4、小结 Excel VBA对象模型,和自己平时操作联系到一起,你能操作什么,就能找到对应的VBA对象。 然后就是多去用才能熟悉。

2.2K31

Excel应用实践10:合并多个工作簿中的数据

学习Excel技术,关注微信公众号: excelperfect 这是ozgrid.com论坛中的一个问题贴子: 我有超过50个具有相同格式的Excel文件,它们的列标题相同,并且都放置同一文件夹,有什么快速的方法将它们合并到一个单独的...图2 “导入工作簿名”工作表中将放置合并的工作簿的名称。 “合并工作表”就是我们要放置合并的数据的工作表。...完整的VBA代码如下: ' 放置导入工作簿名称的工作表 Private Const importedSheet AsString = "导入工作簿名" '放置合并数据的工作表 Private Const...图4 导入到要合并的工作簿所在的文件夹,选择要合并的工作簿文件,单击“打开”按钮。如果一切顺利,则合并数据完成,并弹出如下图5所示的信息。 ? 图5 我们可以查看结果。...“导入工作簿名”工作表中,列出了已经合并数据的工作簿名,如下图6所示。 ? 图6 “合并工作表”工作表中,是合并后的数据,如下图7所示。 ? 图7 代码的图片版如下: ? ?

2.1K41

探索VBA代码编辑器——《Excel VBA宏编程》系列讲座2

事实上,工程资源管理器中,你可以看到当前Excel已经打开的所有工作簿及其对应的工作表。如下图5所示。...图7 这是一个工作簿事件Workbook_Open,当你打开工作簿时会发生,你可以在其中输入你想在工作簿打开执行的操作的代码。如果不添加任何代码,则该工作簿打开不会执行任何操作。...图9 当你工作簿中新添加工作,会触发该事件。我们在其中输入代码: MsgBox “HelloWorld!” 如下图10所示。...图10 MsgBox能够给用户提供一条消息,本示例中是在用户工作簿中新建工作,会弹出一条消息“HelloWorld!”。...图12 保存包含VBA代码的工作簿 保存含有VBA代码的工作簿,我们需要使用xlsm扩展名,如下图13所示,否则Excel会自动删除代码。

3.2K20

Excel VBA编程教程(基础一)

编写第一个VBA宏 「宏」:简单的说,宏是一段可以运行的 VBA 代码片段。 step one 创建启用宏的工作簿 首先新建一个工作簿,并将工作簿保存为「启用宏的工作簿」类型。...step three Excel 工作簿中的 VBA 代码通常保存在工作表对象或模块中。本例中,我们用模块保存 VBA 代码。...VBA 工程:显示当前 VBA 工程包含的所有对象。通常,一个工作簿就是一个 VBA 工程,其中包括 Excel 对象、工作表对象、模块等。 属性窗口:查看和设置选中对象的属性的窗口。...立即窗口:代码运行过程中,打印出的内容,立即窗口中显示。一般用于调试代码。 管理VBA工程 通常,一个工作簿就是一个 VBA 工程,其中包括 Excel 对象、工作表对象、模块等。...当多个工作簿同时打开,他们公用同一个 VBA 编辑器,VBA 工程界面显示所有的 VBA 工程。

11.1K22

Excel VBA事件

Excel里,能发生的事件很多: 打开、关闭工作簿 新建工作簿 新建工作表 激活工作表 选择单元格 单元格改写 ………… 这些都是事件,其实就是平时手动操作Excel的一些动作。...Excel VBA里提供了接口,发生这些事件之前或者之后,让使用者可以设置一段运行的程序。 比如双击打开工作簿,可以设置运行一段程序: ?...上面就是一个工作簿打开事件,运行一段程序: Private Sub Workbook_Open() MsgBox "工作簿打开了" End Sub 这种格式是固定的,必须按照这种模式,Excel...VBA才能识别它为一个事件,所以为了避免使用者手动输入而造成的错误Excel VBA提供了下拉选项让使用者直接选择。...而且事件用的不恰当,会影响Excel的运行效率,刚接触事件的可能会觉得比较好玩,建议事件的使用场所是一些比较简单的表格里,一旦数据运算非常复杂了,尽量不要去使用。

1.3K30

工作簿有密码,自动刷新数据,没问题! | PQ重要技巧

然鹅,偏偏回到Excel本身,如果工作簿设置了密码,Power Query却没有提供输入密码自动刷新的功能,结果,碰到有密码的Excel工作簿,刷新就会出错,还提示为“文件包含损坏的数据”……如下图所示...这个时候,不要忘了还有咱们的老朋友VBA嘛!通过Power Query与VBA的强强联合,咱们就可以刷新对带密码Excel工作簿数据的自动刷新。...- 2 - Excel和PQ中的处理 为方便实现动态路径,我们先建立一个路径表,类似于我以前文章(视频)《批量汇总Excel数据的建议解法-1_同一工作簿内多表》里的做法,这里直接在Excel...: 重要技巧:这里如果直接引用带密码的Excel工作簿,后面的数据处理过程将无法进行,所以,应该先把要加密的Excel工作簿解密,处理好后再重新加密。...- 3 - VBA实现解密刷新 通过VBA,我们可以用密码打开数据源工作簿,清除密码,然后刷新查询,刷新完毕后再对数据源工作簿重新加密……是不是很像“把大象放进冰箱里”的三个步骤?

3.5K41

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

excelperfect 本文介绍的自定义函数来源于wellsr.com,以Excel的CELL函数和INFO函数为样板,可直接返回工作表或工作簿的名称或工作簿路径,以及与Excel及其操作环境有关的各种信息...参数reference,可选,默认值是最后一个发生变化的单元格。 例如,下面的公式: =CELL("filename",A1) 我的示例工作簿中返回: D:\01....Excel研究\06.2 VBA代码库\09\[VBACodeLibrary09.xlsm]Sheet1 下面的公式来拆分出工作簿路径、工作簿名称和工作表名称。...如果参数Target引用了未打开工作簿,则Target可能会被视为NameOf函数引用(其默认值)的单元格或无效的Range。...注意,使用Application.Volatile以确保在打开工作簿或重新计算单元格,所有引用NameOf函数的单元格都会得到更新。

4.5K10

一起学Excel专业开发20:Excel工时报表与分析系统开发(3)——启动与关闭

'背景工作簿 Public gwbkResults As Workbook '当前合并结果工作簿 '初始化"常量"全局变量 '它们应用程序运行时不会变化 Sub InitGlobals()...As String Dim objTemp As Object Dim wkbTemp As Workbook '一些属性需要打开工作簿,因此创建一个工作簿 If ActiveWorkbook...为避免发生这种情况,恢复工具栏配置信息最好的方法是应用程序关闭之前查找并打开xlb文件,这样,Excel就不会觉察到任何变化,也就不会对xlb文件进行任何修改。...4.设置Application.IgnoreRemoteRequests=True,这样双击Excel工作簿图标时会打开一个新的Excel进程实例,而不会重用原来的进程实例。...因为可能会处理多个打开工作簿,此时不允许用户在这些工作簿之间进行跳转。 6.不允许定制命令栏。 7.针对Excel 2002及其以后的版本关闭自动恢复功能。

1.4K20
领券