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

使用GetObject打开工作簿时Excel DisplayAlerts失败

是因为GetObject函数在打开工作簿时无法控制Excel应用程序的显示警告框设置。GetObject函数是用于从文件中检索一个已经存在的对象的函数,它无法直接控制Excel应用程序的行为。

要解决这个问题,可以使用其他方法来打开工作簿并设置DisplayAlerts属性。以下是一种可能的解决方案:

  1. 使用CreateObject函数创建一个Excel应用程序对象:
代码语言:txt
复制
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application")
  1. 打开工作簿并设置DisplayAlerts属性为False:
代码语言:txt
复制
Dim xlWorkbook As Object
Set xlWorkbook = xlApp.Workbooks.Open("工作簿路径")
xlApp.DisplayAlerts = False
  1. 进行其他操作,例如读取或修改工作簿中的数据。
  2. 最后,记得关闭工作簿和Excel应用程序对象,并释放相关资源:
代码语言:txt
复制
xlWorkbook.Close SaveChanges:=False
xlApp.Quit
Set xlWorkbook = Nothing
Set xlApp = Nothing

这样,就可以通过创建Excel应用程序对象并手动设置DisplayAlerts属性来避免使用GetObject函数时的DisplayAlerts失败问题。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云对象存储(COS)。

  • 腾讯云云服务器(CVM):提供可扩展的云服务器实例,可满足各种计算需求。详情请参考:腾讯云云服务器
  • 腾讯云对象存储(COS):提供安全、稳定、低成本的对象存储服务,适用于存储和处理各种类型的数据。详情请参考:腾讯云对象存储
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel: 使用Windows任务计划程序定时自动打开指定工作簿

如果Excel文件关闭,则使用 Application.OnTime 安排的过程也会暂停。本文通过Windows任务计划程序,每天早上8点自动打开指定路径的工作簿,然后激活工作表test。...Activate End Sub 这样,当打开工作簿,程序会自动激活名称为test的工作表。...(2)要使用Windows任务计划程序每天早上8点自动打开指定路径的工作簿,您可以按照以下步骤操作: 打开任务计划程序:点击 开始 按钮,输入“任务计划程序”并打开它。...测试任务:在一切设置完成后,您可以手动运行该任务以测试是否可以成功打开指定的工作簿并激活工作表"test"。...参考资料: [1] VBA: 通过Application.OnTime定时执行程序 [2] 讯飞星火认知大模型 [3] 怎么在每天的某个时刻自动打开特定excel工作簿(https://www.officeapi.cn

83510

ExcelVBA学习之一键打印文件夹中的所有Excel文件

【问题】要打印的Excel文件有几百个,格式有2003版本的也有2016版本的,全部都打印第一个sheet1工作表就可以啦,(如果所在的sheet工作都要打印呢?)。...文件需要打印里面所有的sheet工作表== Sub 打印文件夹下所有文件所有工作表() 'On Error Resume Next Dim xlBook As Excel.Workbook Dim xlSheet...As Excel.Worksheet Application.ScreenUpdating = False '关闭屏幕刷新 Application.DisplayAlerts = False '关闭提示...的目录     n = 2 '开始记录工作簿名和工作表名的开始行     Do While f > " "   '在目录中循环         If f ThisWorkbook.Name Then...   '如果不是打开工作簿             Set xlBook = Workbooks.Open(ThisWorkbook.Path & "\" & f) '打开已经存在的EXCEL工件簿文件

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

    Application.Volatile 方法 用于将用户自定义函数标记为易失性函数,无论何时在工作表的任意单元格中进行计算,易失性函数都必须重新进行计算。...非易失性函数只在输入变量改变才重新计算,若不用于计算工作表单元格的用户自定义函数中,则此方法无效。 记录   GetObject获取的表格对象是多应用模式。...GetObject相当于存在了两个Application,而workbooks.open还是一个。   unprotect解除工作表保护,protect 保护工作表,同样适用于工作簿。  ...Application.DisplayAlerts函数 Application.DisplayAlerts = False,禁用OFFICE出错的错误提示。...WorksheetFunction 对象 用作可从 Visual Basic 中调用的 Microsoft Excel 工作表函数的容器。

    2K20

    VBA: 打开Excel文件的两种方式(GetObject函数和Workbooks.Open方法)

    End Sub 使用GetObject函数,获取对指定Excel文件的引用。如果Excel文件尚未打开,那么程序会在后台打开工作簿。...注意:通过GetObject函数引用某个工作簿,如果该工作簿已经打开,但不处于活动(Active)状态,则程序可能会报错。...3 两种打开方式的区别 (1)使用GetObject函数的好处是,可以通过隐藏方式打开指定工作簿。如果目的是获取指定工作簿的数据,而不试图修改数据,那可以使用GetObject函数。...(2)在打开指定工作簿,如果该工作簿已经提前打开使用GetObject函数有可能会报错,因为该工作簿一般不处于活动状态; 使用Workbooks.Open方法通常不会导致错误。...相反,它会返回对已经打开工作簿的引用,而不会重新打开它。 (3)通过GetObject函数打开Excel文件只要被修改(写)并保存后,后续打开该文件就只能在VBE中看到表格,但用户界面却看不到。

    7.9K10

    问与答66: 如何不打开Excel文件删除行?

    Q:我有大约1000多个Excel文件(扩展名为xlsx),这些文件都只有1个工作表且具有相同的工作表结构,我想在不打开这些Excel文件的前提下删除其工作表的第1至3行,如何快速实现?...A:可以使用下面的VBA代码: Sub DeleteRows() '声明变量 Dim FilePath As String Dim fFile As String Dim...UpdateLinks:=0) ActiveWorkbook.Sheets(1).Rows("1:3").Delete Shift:=xlUp Application.DisplayAlerts...只要不是代码所在的Excel工作簿文件,将打开工作簿,执行删除第1至3行的操作,然后保存结果并关闭该工作簿。 注意,代码默认所要操作的工作簿与代码所在的工作簿在同一文件夹中。...虽然要求不打开Excel来删除行,但使用代码打开工作簿,执行操作,保存操作结果,然后关闭工作簿,让用户觉得根本没有打开工作簿,这也是常用的技巧。 代码的图片版如下:?

    1.4K10

    VBA实战技巧:正确登录后才能使用Excel工作簿

    当你打开这个工作簿Excel会弹出一个登录框,如下图1所示。当你输入正确的用户名和密码后,才能使用这个工作簿,否则会退出。...图1 这个工作簿中有一个名为“用户中心”的工作表,用来存放用户名、密码等信息,如下图2所示。 图2 打开VBE,插入一个用户窗体,在其中放置标签、文本框、按钮等控件,并将相关控件命名。...Application.EnableCancelKey = xlDisabled Sheets("数据").Activate Sheets("用户中心").Visible= xlVeryHidden login.Show End Sub 关闭工作簿...,重新打开,会弹出上图1所示的登录窗口。...当然,如果想下载示例工作簿,请到知识星球完美Excel社群中下载。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    1.2K20

    Application主程序对象属性

    之前介绍工作表删除delete方法已经顺便提过。...在代码运行时不希望出现提示或警告信息,可以在程序开始之前将DisplayAlerts属性设为false,最后在代码结束之前,将DisplayAlerts属性设为true,回复excel默认设置。...在使用delete方法excel会弹窗是否确认删除。但会阻碍vba代码的自动运行。 那么就需要先将excel的询问警告对话关闭。...(即excel程序窗口最左下角,如下图显示“就绪”。) 下面直接说明如何使用,首先用变量保存状态来的原状态。...通常在工作簿open事件中使用该代码,即打开工作簿就将他设置为需要的名称,代码比较简单: Sub test() Application.Caption = "我的exce程序" End Sub 五、windowstate

    1.9K10

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

    例如,你的程序打开一个工作簿并需要使用其现有的一个工作表。在其他时候,该对象不存在,并且你的程序必须创建该对象并获得引用(例如,当向工作簿中添加新工作)。...要从磁盘中打开现有工作簿使用Open方法: Workbooks.Open(Filename) Filename参数是要打开工作簿文件的名称,必要包括完整路径。...工作簿的名称要么是你使用SaveAs方法赋给的名称(在本课程的后面部分介绍),要么是Excel在创建新工作簿赋给的默认名称(工作簿1、工作簿2,等)。Save方法不带任何参数。...另一种方法SaveCopyAs使你可以使用新名称保存工作簿的副本,而无需更改打开工作簿的名称。...一种方法是在分别使用Add或Open方法创建或打开工作簿赋值引用,因此: Dim MyNewWB As Workbook Dim MyOpenedWB As Workbook Set MyNewWB

    5.1K30

    【批量创建,删除工作表】

    本文将重点介绍如何利用VBA批量创建和删除工作表,让你更高效地管理工作簿中的多个工作表。 为什么要使用VBA批量创建和删除工作表?...在处理大量数据或复杂任务Excel中可能需要创建多个工作表来组织数据或进行分析。而手动逐个创建或删除工作表是一项繁琐的任务,费时费力。...方法:利用VBA批量创建和删除工作表 以下是在Excel中利用VBA批量创建和删除工作表的步骤: 步骤一:打开VBA编辑器 在Excel中,按下Alt + F11快捷键,或者通过点击“开发人员”选项卡中的...总结: 利用VBA批量创建和删除Excel工作表是提高工作效率的好方法。通过VBA宏编程,我们可以轻松地实现批量创建多个工作表,并在不需要快速删除这些工作表。...这大大地简化了工作流程,节省了时间和精力。 然而,在使用VBA宏需谨慎操作,避免误操作造成数据丢失。建议在运行宏之前备份工作簿,以防万一。

    26110

    打开自动运行宏的Excel工作簿出错,怎么办怎么办? | Power Automate实战

    Excel即自动运行宏的目的。...现在,先说一下自动启动宏这个问题:在用Power Automate Desktop启动带workbook.open的宏,可能会导致出错!...运行时,将会出现类似错误:无法打开Excel文档…… 此时,我们其实完全可以取消workbook_open()过程,比如,先注释掉该过程: 然后复制要在workbook_open过程中自动调用的宏名称...: 在Power Automate Desktop里添加“运行Excel宏”步骤,选择前面“启动Excel”步骤中生成的Excel实例,并在“宏”里输入(粘贴)要运行的宏名称即可: 通过这样的方式...,Power Automate Desktop即可按需要自动启动Excel,自动运行相应的宏……实现全流程的自动化处理。

    2.1K20

    VBA编程练习08:删除工作表而不显示提示信息

    本次练习题 当我们删除工作簿中的工作Excel会自动弹出“MicrosoftExcel将永久删除此工作表。是否继续?”的信息提示框,要求你选择“删除”还是“取消”,如下图1所示。 ?...图1 在编写VBA程序代码,如果代码要删除指定的工作表,那么也会弹出这样的消息,从而导致程序运行中断。 如何使用代码删除指定的工作表,但不显示提示信息? 有兴趣的朋友,不妨先想想,再看下面的答案。...答案 可以使用Application对象的DisplayAlerts属性,代码如下: Application.DisplayAlerts= False Worksheets("MySheet").Delete...Application.DisplayAlerts= True 首先将Application对象的DisplayAlerts属性设置为False,以屏蔽Excel可能会弹出的消息框。...小结:在你需要避免Excel自动弹出消息,可以像上述一样通过设置Application对象的DisplayAlerts属性为False来实现。

    3.8K20

    Excel实战技巧64: 从工作簿中获取数据(不使用VBA)

    这是在研读《Escape From Excel Hell》学到的技术,从本工作簿中或者其他工作簿中获取所需要的数据,以便于作进一步的分析或者绘制Excel图表。 下图1所示是用于获取数据的工作表。...用于输入的有4个单元格(背景色为橙色),其中单元格A6中输入源数据(即要从哪里获取数据)所在的工作簿名称;单元格A7中为源数据所在的工作表名称;单元格A8中为源数据起始单元格的名称;单元格C5中为数据所在列号...其中,SourceDataLocation为源数据工作表中数据所在区域的起始单元格名称。在本示例工作簿中,该单元格位置如下图2所示。 ?...如果在图1所示的工作表单元格A6中没有输入任何工作簿名(即留空),那么将获取当前工作簿中源数据工作表(如图2)的数据,如下图3所示。 ?...可以在完美Excel微信公众号底部发送消息: 获取数据 下载示例工作簿研究。

    3K10

    VBA示例程序:筛选并获取不重复日期

    标签:VBA 如下图1所示,在名为“工作簿1.xlsm”的工作簿工作表Sheet1中,标题为“StartDate”的列有一系列日期,但其中有很多重复的日期,现在要对其进行筛选,获取不重复日期,示例结果如图...打开VBE,插入一个标准模块,在其中输入代码: Sub GetDates() Const adOpenStatic = 3 Const adLockOptimistic = 3 Const adCmdText...Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & ThisWorkbook.FullName & ";" & _ "Extended Properties=""Excel...Range("A:A").Copy Worksheets("Sheet1").Range("C1") Application.CutCopyMode = False Application.DisplayAlerts...= True End Sub 当然,不喜欢使用VBA的朋友,如果使用新版本的Excel,一个简单公式即可搞定: =UNIQUE(A2:A9,FALSE) 注:本文学习整理自vbaexpress.com

    19810

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

    下面是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() ' 目的: ' - 将当前工作簿保存为加载宏

    10410

    VBA在多个文件中Find某字符的数据并复制出来

    VBA在多个文件中Find某字符的数据并复制出来 今天在工作中碰到的问题 【问题】有几个文件,每个文件中有很多条记录,我现在要提取出含有“名师”两个字符的记录。...要打开文件对话框,选中要打开的文件,存入数组,再GetObject(路径)每一个文件打开,用Find指定字符,找到第一个用firstAddress记录起来,再FindNext查找下一个,当循环到最初的位置停止...m,title_row Dim MyOb As Object, mysht As Worksheet fileToOpen =Application.GetOpenFilename("Excel...取消”,将要退出程序":Exit Sub Application.DisplayAlerts = False ' Application.ScreenUpdating = False...输入要查找的字符") If ss = "" Then MsgBox "你没有输入": Exit Sub For Each rr In fileToOpen Set MyObj = GetObject

    2.8K11
    领券