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

使用宏关闭并重新打开工作簿后出现“无法运行宏”错误

当使用宏关闭并重新打开工作簿后出现“无法运行宏”错误时,可能是由于以下几个原因导致的:

  1. 宏安全性设置:Excel具有宏安全性设置,以防止恶意宏的运行。当工作簿中的宏被禁用或受到限制时,重新打开工作簿时会出现“无法运行宏”错误。解决方法是启用宏安全性设置,可以通过以下步骤进行操作:
    • 打开Excel,点击“文件”选项卡。
    • 选择“选项”。
    • 在弹出的对话框中,选择“信任中心”。
    • 点击“信任中心设置”按钮。
    • 在信任中心设置对话框中,选择“宏设置”。
    • 选择适当的宏安全级别,如“启用所有宏”或“启用所有宏,但弹出警告”。
    • 点击“确定”保存设置。
  • 宏的位置:如果工作簿中的宏位于其他工作簿或外部文件中,并且这些文件在重新打开工作簿时不可用,就会出现“无法运行宏”错误。解决方法是确保宏所依赖的文件在重新打开工作簿时可用,并且文件路径正确。
  • 宏的命名冲突:如果工作簿中存在多个具有相同名称的宏,重新打开工作簿时可能会出现“无法运行宏”错误。解决方法是确保每个宏都具有唯一的名称,以避免命名冲突。
  • 宏的代码错误:如果宏的代码存在错误或不完整,重新打开工作簿时可能会出现“无法运行宏”错误。解决方法是检查宏的代码,确保语法正确,并且没有任何错误。

总结起来,当使用宏关闭并重新打开工作簿后出现“无法运行宏”错误时,可以通过启用宏安全性设置、确保宏所依赖的文件可用、避免命名冲突以及检查宏的代码来解决该问题。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云Excel VBA宏安全性设置:https://cloud.tencent.com/document/product/1042/33434
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云云函数(SCF):https://cloud.tencent.com/product/scf
  • 腾讯云API网关(API Gateway):https://cloud.tencent.com/product/apigateway
  • 腾讯云云数据库MySQL版(TencentDB for MySQL):https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云内容分发网络(CDN):https://cloud.tencent.com/product/cdn
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一起学Excel专业开发17:Excel工时报表与分析系统开发(2)——创建特定应用加载

注:所谓特定应用加载,是指只能在专门为它所设计的工作簿工作的一类加载。...5.允许用户向“工时输入”工作表中添加更多的数据输入行 6.允许用户清除数据输入区域中的数据,以便重新使用工时输入表 7.允许用户关闭PETRAS程序 8.添加自定义属性,合并程序可据此查找“工时输入...然后,初始化所有全局变量,这里的两个全局变量,一个用于存放加载的完整路径,一个用于指明加载是否在关闭过程中。接着,查找用户接口工作簿,如果找到则继续运行程序,否则显示错误信息退出应用程序。...打开初始化时间输入工作簿 下面的程序读取用于接口设置的工作表中的数据并在接口工作簿中进行使用: '将设置应用到时间输入工作簿的所有工作表 Public Sub MakeWorksheetSettings...在接口工作簿初始化完成运行过程ResetAppProperties过程,确保Excel应用程序相关的属性均被设置为默认值。

95620

VBA代码库10:强制用户启用

有时,必须确保用户在打开工作簿时启用,否则就不能实现工作簿的效果。由于无法使用打开,因此需要一种确保用户启用的技术。...下面讲解的方法隐藏除“欢迎”工作表(告诉用户启用)之外的所有工作表,并在每次保存工作簿时强制执行该工作表。如果用户在启用了的情况下打开工作簿,则将不会隐藏所有工作表。...还可以使用Excel的 VeryHidden属性来实现工作表的隐藏,这意味着不能使用Excel的菜单来取消隐藏工作表。但是,这只会影响该工作簿,因此用户可以使用另一个工作簿中的取消隐藏所有工作表。...Cancel = True End Select End If '如果单击取消, 重新打开事件取消关闭,...(SaveAsUI) Cancel = True '重新打开事件设置saved属性为true Application.EnableEvents = True ThisWorkbook.Saved

2.3K40

Excel实战技巧:创建带有自定义功能区的Excel加载

创建的这个带有自定义功能区的Excel加载将可以有任意工作簿使用,下面我们详细讲解其创建过程。...第1 步:创建一个新工作簿,将其保存为启用工作簿(本示例使用名称MyCustomRibbon.xlsm)。 第2步:单击“文件——信息”,选择“属性——高级属性”,如下图1所示。...图6 保存关闭Custom UI Editor。 第6步:关闭Excel,然后重新打开Excel。...图8 此时,在Excel工作簿功能区中出现了一个新的选项卡,如下图9所示。单击选项卡组中的按钮,会调用相应的显示信息。 图9 第7步:修改成中文。...图10 修改完成,保存该文件关闭。然后,将其拖回压缩文件,覆盖掉原customUI14.xml文件。 最后,将压缩文件扩展名恢复为正常的加载扩展名。

2.6K20

Excel实战技巧78: 创建个人工作簿

个人工作簿是一个文件,可以在应用程序开启时运行其中的VBA代码,就像是运行功能区选项卡中的命令一样。创建个人工作簿很简单,如下所示。...步骤1:打开一个Excel工作簿,单击功能区“开发工具”选项卡中的“录制”命令,在弹出的“录制”对话框中,选取“保存在”下拉列表框中的“个人工作簿”,如下图1所示。单击“确定”。 ?...图3 下面,我们将《Excel实战技巧77:实现在当前工作表和前一个使用工作表之间自由切换》中创建的快捷键功能放到个人工作簿中,以便于在所有打开工作簿中都能使用这个功能。...ThisWorkbook模块,输入代码: '打开工作簿运行 Private Sub Workbook_Open() Call TabBack_Run End Sub 保存关闭Excel文件,...然后随便打开一个工作簿,发现可以使用快捷键Alt+`在当前工作表和前一个工作表之间来回切换了。

2.6K30

ChatGPT与Excel结合_编写VBA

VBA允许用户编写自定义的脚本或,以便通过执行一系列指令来自动完成特定任务。 使用Excel VBA,你可以创建和编辑工作表、处理数据、执行计算、生成报表、自定义用户界面等。...' 提示完成信息 MsgBox "已将行数据分割为新的工作簿保存。"...运行,会将第3行到第9行的每一行数据复制到一个新的工作簿,并将其保存在指定的路径下。完成后会弹出一个提示框,显示操作已完成。...End Sub 运行,它会遍历工作薄中的每个工作表,并将每个作表中的图片移动到A1单元格的位置。在移动图片之后,会弹出一个提示框显示操作已完成。...End Sub 运行,它会遍历当前Excel工作簿中的每个工作表,删除每个工作表中的所有图片。在删除图片之后,会弹出一个提示框显示操作已完成。

47510

ChatGPT与Excel结合_编写VBA

VBA允许用户编写自定义的脚本或,以便通过执行一系列指令来自动完成特定任务。 使用Excel VBA,你可以创建和编辑工作表、处理数据、执行计算、生成报表、自定义用户界面等。...' 提示完成信息 MsgBox "已将行数据分割为新的工作簿保存。"...运行,会将第3行到第9行的每一行数据复制到一个新的工作簿,并将其保存在指定的路径下。完成后会弹出一个提示框,显示操作已完成。...End Sub 运行,它会遍历工作薄中的每个工作表,并将每个作表中的图片移动到A1单元格的位置。在移动图片之后,会弹出一个提示框显示操作已完成。...End Sub 运行,它会遍历当前Excel工作簿中的每个工作表,删除每个工作表中的所有图片。在删除图片之后,会弹出一个提示框显示操作已完成。

42120

VBA实用小程序61: 在文件夹内所有文件中运行工作簿所有工作表中运行

学习Excel技术,关注微信公众号: excelperfect 在文件夹中所有文件上运行,或者在Excel工作簿中所有工作表上运行,这可能是一种非常好的Excel自动化方案。...wb.CloseSaveChanges:=False '关闭打开工作簿 Debug.Print "已处理 "& folderName & "\" & fileName...="" MsgBox "在所有工作簿中都完成了执行" End Sub 这段代码完成下列操作: 1.在当前工作簿路径中打开“选择文件”对话框,要求选择一个用于存储所有文件的文件夹。...2.打开一个单独的Excel进程(应用程序),然后逐个打开每个文件。 3.使用要在每个打开工作簿运行的代码替换“在这里放置你的代码”部分。 4.每个打开工作簿关闭时不会保存所作的修改。...2.使用要在每个打开工作表上运行的任何代码替换“在这里放置你的代码”部分。

4.5K11

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

,后面的数据处理过程将无法进行,所以,应该先把要加密的Excel工作簿解密,处理好重新加密。...- 3 - VBA实现解密刷新 通过VBA,我们可以用密码打开数据源工作簿,清除密码,然后刷新查询,刷新完毕再对数据源工作簿重新加密……是不是很像“把大象放进冰箱里”的三个步骤?...,清除密码保存关闭 Set wb = Workbooks.Open(path, Password:="123456") wb.Password = "" wb.Save wb.Close...'2、刷新数据 ThisWorkbook.Connections("查询 - 表2").Refresh '3、重新打开工作簿,设置密码保存关闭 Set wb = Workbooks.Open...,刷新代码后面的步骤(重新加密)被执行而导致刷新失败: 这样,我们就又可以一键刷新了: 注意,这里数据刷新,查询上仍然会提示如文章开头所说的错误信息,但这并不影响数据的更新和使用

3.5K41

Excel数据表分割(实战记录)

使用Excel的来实现将每10行数据创建为一个新表的功能。...End Sub 请按照以下步骤操作(Sheet): 打开Excel,按下ALT + F11打开VBA编辑器。 在左侧的“项目资源管理器”窗格中,找到你的工作簿双击打开。...点击“”按钮,在弹出的对话框中选择“分割数据”,然后点击“运行”。 这样,每10行数据将会被创建为一个新的表格,并且你将得到一个弹出窗口,显示成功分割为多少个表格。...如果每10行数据创建一个新的工作簿而不是新的工作表(Sheet),可以使用以下VBA代码: 复制代码 Sub 分割数据() Dim 原始表 As Worksheet Dim 新表 As...End Sub 请注意,此代码将创建新的工作簿,并在每个新工作簿中复制相应的数据。你可以根据需求修改代码中的保存路径和文件名。运行代码,将显示一个弹出窗口,指示成功分割为多少个新表。

28320

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

如果启动时检查失败,那么应该平稳地退出程序给出相应的错误信息。 2.在应用程序退出时还原所有设置。...3.构建或打开动态用户接口元素,包括特定应用程序的功能区选项卡、Excel应用程序级的设置、工作簿模板,等等。 4.注册用户自定义函数。...根据加载的类型以及启动时的环境条件处理某些特殊设置,例如当打开加载时,如果应用程序的工作簿已处于打开状态,那么应用程序中的所有功能区选项卡元素和快捷菜单应均设置为可用,反之则应该使大部分的功能区元素和快捷菜单项不可用...3.处理运行错误。当运行时发生错误时,进行处理,避免程序死锁,同时告知用户错误信息。 4.调用其他加载中的代码。如果引用了其他加载,就可以通过名称来调用其标准模块中的公有过程。...当然,如果不使用引用方式,也可以通过Application.Run函数来实现。 5.提供其他服务。在运行时加载提供的其他服务,例如用户自定义函数。

1.4K20

VBA实战技巧32:安装Excel加载

图4 每个键都包含要打开的加载项的名称(有时还包含一些命令行参数)。如果加载项不在加载项文件夹中,则包含完整路径。 注意,这些注册表项在关闭Excel更新。...Excel可以打开此类文件,但无法安装zip文件夹中的加载项。并且压缩软件会在关闭立即删除Temp中的该文件夹。然后,会在Excel中得到一个指向已安装加载项的指针,该加载项没有随附的xlam文件。...(ThisWorkbook.FullName, False) oAddIn.Installed = True RemoveEmptyBooks 第一行代码确保在Excel中至少打开一个工作簿窗口。...最后一行关闭加载项打开的所有工作簿。为什么?因为当没有活动工作簿时你无法打开加载项对话框,显然这也会阻止Excel通过VBA将新加载项添加到列表中。...下面是添加一个空工作簿并再次删除它的代码: Option Private Module Dim moWB As Workbook Sub AddEmptyBook() '如果需要添加一个空工作簿.

4.5K20

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

随着支持Windows的应用程序的不断增多和功能的不断增强,越来越多的程序增加了处理来方便用户的自由扩展。但初期各应用程序所采用的语言并不统一,这样用户每使用一种应用程序时都得重新学习一种语言。...AutoCAD2000)等对VBA的支持,这些软件也已进入到了VBA的控制范 围;2、可以将用VBA编写的程序复制到Visual Basic中调试运行,从而实现用Visual Basic来控制有关的应用程序...Basic代码正在运行工作簿。...而编号按照创建或打开工作簿的顺序来确定,第一个打开工作簿编号为1,第二个打开工作簿为2……。...Application.DisplayAlerts = False 在删除完成,再重新打开excel的警告提示 Application.DisplayAlerts = True 六)、工作簿

6.3K10

一起学Excel专业开发21:Excel工时报表与分析系统开发(3)——自定义用户界面

ConsolidateWorkbooks End Sub '处理文件->打开菜单项 '关闭任何现有的结果工作簿 '询问要打开的新工作簿的名称 '检查它是否是结果工作簿,然后将其打开 Sub...,请打开或创建新的结果工作簿."...'关闭事件,必须有一些错误处理,以确保总是可将它们重新打开 On Error GoTo ErrHandler '初始化处理计数器 lCount = 0 lTotal...wkbTimesheet.Close False End If Next '重新打开事件,恢复报错 Application.EnableEvents...专业开发17:Excel工时报表与分析系统开发(2)——创建特定应用加载》中,我们使用加载和模板创建每周工时表并将它们存储到工作区,ConsolidateWorkbooks过程用来获取这些工时表工作簿并将它们合并和分析

1.9K10

从EXCEL VBA开始,入门业务自动化编程

个人私见,所谓编程,实际上就是将人的意图和命令,用某种程序语言传达给计算机,让计算机能够如期运转的行为。 程序其实不光能通过文字编写,现在也出现了可以使用图画来进行编写的工具。...安全性设定不好的话,宏命令可能无法执行。大家需要注意一下。 打开包含的Excel文件时,可能会显示如下安全警告(图5) 图5 单击[启用内容]按钮,消息条就消失了。(图6)。...图7 如图设置完毕打开包含工作簿是被禁用的;如果确认的安全性没有问题,用上面图5图6的方法再启用就可以了。 举例创建一个最简单Excel 现在我们尝试着创建一个具体的出来。...(图15) 图15 图15的画面中的内选择「拷贝粘贴」,然后单击[追加]按钮,右侧的框内就会出现这个。单击[确定]关闭。...(图18) 图18 在工作簿上创建按钮来执行 下面我们来说明一下如何通过按钮来执行。 Excel支持在工作簿上创建一个图形来作为按钮,并把它分配给作为启动器的方式。

17.5K111

在加载及其源文件之间切换

下面是www.wimgielis.com中提供的一个示例,在Personal.xlsb(个人工作簿)中,还添加了五个过程在xlsm版本(主要用于开发)和xlam版本(主要用来测试和使用)之间切换: Addin_SAVE_AS...:将xlsm保存为xlam,不再打开xlsm版本 Addin_INSTALLED:安装xlam版本,不再打开xlsm版本 Addin_NO_Addin:卸载xlam版本,xlsm版本也不再打开 Addin_UNINSTALLED...:卸载xlam版本,将打开xlsm版本 Addin_TOGGLE_VISIILITY:使xlam版本可见或不可见 可以在原网站搜索下载示例代码工作簿。...也可以在完美Excel微信公众号中发送消息: 切换加载 获取示例代码工作簿的下载链接。 或者,直接到知识星球App完美Excel社群中下载示例代码工作簿。...Addin_FileName As String = "Menu_Test.xlsm" ' 在文件及其加载项对应文件之间切换的过程 Sub Addin__SAVE_AS() ' 目的: ' - 将当前工作簿保存为加载

7910

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

创建新工作簿保存为启用工作簿。 2. 关闭工作簿,然后在CustomUI Editor中打开工作簿。 3....该过程在首次打开工作簿时或者在使该控件无效时执行。 有3种使控件无效的方法: 第1种:InvalidateControlMso可以使指定的内置控件无效。...之后,要将其粘贴到工作簿的VBA模块中。 7. 保存关闭该文件。 8. 在Excel中打开工作簿文件。...因为是第一次在Excel中打开该文件,会得到关于getLabel1的错误消息的提示,因为在标准的VBA模块中还没有getLabel1回调过程。此时,单击“确定”关闭错误消息。 9....Application.UserName Else returnedVal = "美好的一天, " & Application.UserName End If End Sub 关闭重新打开工作簿

2.2K10

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

关闭时,应用程序删除用户接口并将Excel恢复到该应用程序运行前的原有状态。...As String Dim objTemp As Object Dim wkbTemp As Workbook '一些属性需要打开工作簿,因此创建一个工作簿 If ActiveWorkbook...为避免发生这种情况,恢复工具栏配置信息最好的方法是在应用程序关闭之前查找打开xlb文件,这样,Excel就不会觉察到任何变化,也就不会对xlb文件进行任何修改。...4.设置Application.IgnoreRemoteRequests=True,这样在双击Excel工作簿图标时会打开一个新的Excel进程实例,而不会重用原来的进程实例。...5.关闭任务栏中的窗口。因为可能会处理多个打开工作簿,此时不允许用户在这些工作簿之间进行跳转。 6.不允许定制命令栏。 7.针对Excel 2002及其以后的版本关闭自动恢复功能。

1.4K20

VBA专题10-8:使用VBA操控Excel界面之在功能区中添加内置控件

下载安装Custom UI Editor。 2. 创建新工作簿保存为启用工作簿。 3. 关闭工作簿,然后在CustomUI Editor中打开工作簿。 4....在CustomUI Editor中,单击“插入”选择“Office 2007 Custom UI Part”。之所以选择这个选项,是使工作簿与Excel 2007及以后的版本兼容。...单击工具栏中的Validation按钮来检查是否有错误。 7. 保存关闭文件。 8. 在Excel中打开工作簿文件。 下图展示在功能区的“开始”选项卡出现了含两个内置控件的名为Fav的组。 ?...注意到,这是对特定文档进行功能区定制,即仅包含XML代码的工作簿显示定制的功能区,当关闭工作簿时,自动移除功能区中的定制。...要在其他工作簿中显示定制的功能区,应将工作簿保存为加载(Excel加载(*.xlam)),执行下列步骤在Excel启动时装载加载宏文件: 1.

5.9K30

一起学Excel专业开发18:Excel工时报表与分析系统开发(2)——创建特定应用加载(续)

,这样可以防止用户单击工具栏中的按钮时,接口工作簿不是当前工作簿而导致的运行错误。...注意,在插入新行之前先删除工作表滚动区域设置,插入新行重新添加滚动区域设置。如果不这么操作,那么在插入新行时工作表滚动区无法进行正确调整。...允许用户清除数据输入区域中的数据,以便重新使用工时输入表 图1所示的自定义工具栏中的第三个按钮用于清除工时输入表数据输入区中的数据,代码如下: '清除当前工作表中的数据输入单元格内容 '以便再次利用数据输入区进行数据输入...这是因为在关闭加载工作簿时会触发过程Auto_Close,而Auto_Close过程会再次调用ShutdownApplication过程。...在工时输入工作簿关闭,该过程检查是否还有其他可见工作簿处于打开状态。如果没有,则关闭Excel。如果有可见工作簿处于打开状态,则只关闭工作簿而不关闭Excel。

1.2K20

VBA编写笔记:常用的对象和方法

关闭屏幕更新可加快的执行速度。这样将看不到的执行过程,但的执行速度加快了。 当结束运行,请记住将 ScreenUpdating 属性设置回 True。 2....Application.Volatile 方法 用于将用户自定义函数标记为易失性函数,无论何时在工作表的任意单元格中进行计算时,易失性函数都必须重新进行计算。...非易失性函数只在输入变量改变时才重新计算,若不用于计算工作表单元格的用户自定义函数中,则此方法无效。 记录   GetObject获取的表格对象是多应用模式。...unprotect解除工作表保护,protect 保护工作表,同样适用于工作簿。   range对象的offset属性能整体偏移选择其它范围,返回它的range对象。...Application.DisplayAlerts函数 Application.DisplayAlerts = False,禁用OFFICE出错时的错误提示。

1.7K20
领券