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

使用多个工作表运行时错误91

是指在使用多个工作表进行操作时,出现了运行时错误91。运行时错误91是Visual Basic for Applications (VBA)中的一种错误类型,表示对象变量或With块变量未设置。

在Excel中,可以通过VBA编程语言来操作多个工作表。当我们在VBA代码中引用一个对象变量或With块变量时,如果该变量未被正确设置,就会出现运行时错误91。

出现运行时错误91的原因可能有以下几种情况:

  1. 对象变量未被正确初始化或赋值。
  2. 对象变量引用的对象不存在或已被销毁。
  3. 对象变量引用的对象不在当前工作簿或工作表中。

解决运行时错误91的方法如下:

  1. 确保对象变量被正确初始化或赋值。可以使用Set语句将对象变量与相应的对象关联起来。
  2. 检查对象变量引用的对象是否存在或未被销毁。如果对象已被销毁,需要重新创建或重新引用该对象。
  3. 确保对象变量引用的对象在当前工作簿或工作表中。如果对象不在当前工作簿或工作表中,需要切换到相应的工作簿或工作表。

以下是一些可能导致运行时错误91的常见操作示例及解决方法:

  1. 示例1:引用一个未初始化的对象变量。Dim ws As Worksheet ws.Range("A1").Value = "Hello" ' 运行时错误91解决方法:使用Set语句将对象变量与工作表对象关联起来。Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("Sheet1") ws.Range("A1").Value = "Hello" ' 正确操作
  2. 示例2:引用一个已被销毁的对象变量。Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("Sheet1") Set ws = Nothing ws.Range("A1").Value = "Hello" ' 运行时错误91解决方法:确保对象变量未被销毁,或重新创建对象变量。Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("Sheet1") ' 或重新创建对象变量 Set ws = ThisWorkbook.Worksheets.Add ws.Range("A1").Value = "Hello" ' 正确操作
  3. 示例3:引用一个不在当前工作簿或工作表中的对象变量。Dim ws As Worksheet Set ws = Workbooks("Book1.xlsx").Worksheets("Sheet1") ws.Range("A1").Value = "Hello" ' 运行时错误91解决方法:确保对象变量引用的对象在当前工作簿或工作表中,或切换到相应的工作簿或工作表。Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("Sheet1") ' 或切换到相应的工作簿或工作表 Workbooks("Book1.xlsx").Activate Worksheets("Sheet1").Range("A1").Value = "Hello" ' 正确操作

总结:

使用多个工作表运行时错误91是指在使用VBA操作多个工作表时出现的对象变量或With块变量未设置的错误。解决方法包括正确初始化或赋值对象变量、确保对象存在且未被销毁、以及确保对象在当前工作簿或工作表中。更多关于Excel VBA的信息和示例,可以参考腾讯云的Excel VBA开发文档:Excel VBA开发文档

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

相关·内容

使用Python pandas读取多个Excel工作

学习Excel技术,关注微信公众号: excelperfect 标签:Python与Excel,pandas 本文将尝试使用Python pandas读取来自同一文件的多个Excel工作。...按名称选择要读取的工作:sheet_name=['用户信息','复利']。此方法要求提前知道工作名称。 选择所有工作:sheet_name=None。...图1 我们将从示例Excel文件中读取所有工作,然后将该数据框架用于后续示例。 df返回一个数据框架字典。该字典的键(keys)包含工作名称、该字典的值(values)包含工作内容。...图3 pd.ExcelFile() 使用这种方法,我们创建一个pd.ExcelFile对象来表示Excel文件。此时,我们不需要指定要读取的工作。...图5 要从工作中获取数据,可以使用parse()方法,并提供工作名称。

13K42

将一个工作拆分为多个工作

最近已经不止一次被人问到:怎么将一个工作拆分为多个工作?...一般这样的需求,是因为将1-12月的数据写在了一个工作上,而现在又想将它拆分为12个单独的工作,每个工作表单独一个月份.总结了一下,文艺青年的方法有三,普通青年请直接跳到最后一个办法 数据透视 将你需要显示的字段放在数据透视中...,以表格显示显示,重复所有项目标签'这4个功能你可能在调整格式过程中需要用到 就这样,不用代码也不用函数,你就可以将你的拆分为N多个.接下来,就是见证奇迹的时刻: 是不是很神奇 这样操作之后,你发现那些都是数据透视...选中第一个工作,然后按住SHIFT,选中最后一个工作,这样你可以选中许多连续的工作(这时候工作簿名称后面会显示'工作组') 然后对你现在的全选,粘贴为值( 如果不需要月份,还可以删除前几行数据)....例如数据源D列是月份,你要按月份拆分的话,在新建的工作中D列输入月份,像这样 然后在A1输入以下公式:假设数据名为数据源,并且你的数据到了499行,且依据字段在D列的情况下.其他需要根据需求进行更改

4.4K20
  • VBA技巧:复制多个工作

    标签:VBA 有时候,我们想要批量复制多个工作到新的工作簿,可以使用VBA代码来实现。...例如,工作簿中有三个工作,其名称分别为:Data、完美Excel和Output,要将这三个工作一次复制到一个新的工作簿中并保存,示例代码如下: Sub CopyMultiSheet() Application.ScreenUpdating...,会生成一个新工作簿,而Array方法会将工作组合到一起,就像我们在工作簿中按Ctrl键的同时选择工作标签一样。...工作簿对象的SaveAs方法存储新工作簿(使用工作Data的单元格A1中的内容作为工作簿名称),而Close方法关闭新工作簿。...有兴趣的朋友可以自己创建一个工作簿,按代码中的名称命名工作,然后将上述代码复制到VBE标准模块中,运行代码试试看,这样就会对代码的作用有更深的理解。

    2.4K20

    模板:使用Excel工作数据自动生成多个Word文档

    标签:VBA,Office整合应用 这是在网上收集到的一个示例,可以使用Excel工作数据自动生成多个Word文档邮件。 这个示例由同一个文件夹中的两个文档组成。...一个是Excel工作簿,其中的工作中数据就是要填入Word文档中的数据;一个是Word文档,一个模板,其中的内容就是邮件的主要内容,有多个空白域,用来填充来自Excel工作中的数据。...在Excel工作中有多少行数据,就会生成多少个Word文档。...Next lngRow Set Doc = Nothing Set appword = Nothing End Sub 有兴趣的朋友,可以在完美Excel微信公众号中发送消息: Excel自动生成多个...你可以将其作为模板,将Excel工作和Word文档按照你的内容进行修改后使用

    40210

    Excel应用实践15:合并多个工作

    学习Excel技术,关注微信公众号: excelperfect 有时候,我们需要将工作簿中的所有工作的数据合并到一个工作中。...如果工作数量很少,可以直接手工使用复制粘贴操作,然而,如果工作很多并且工作中的数据量很大,手工复制既繁琐又容易出错漏。...还好有VBA,对于这种情况,编写少量的代码,即可迅速且准确无误地完成合并工作。 下面的代码假设每个工作中的标题行相同。代码将新建一个工作,将工作簿所有工作中的数据合并到这个新工作中。...UBound(arrSheetNames)) arrSheetNames(i) = ThisWorkbook.Worksheets(i).Name Next i '添加一个新工作并将其放置在所有工作之后...Worksheets(.Worksheets.Count)) End With '设置粘贴数据的位置 Set rngTarget =wksNew.Range("A1") '遍历工作并将工作中的数据粘贴到新工作

    1.1K10

    VBA实例一、工作簿按拆分成多个工作簿

    大家好,本节主要介绍,通过VBA程序,将单个工作簿中的多个工作,按拆分成多个独立工作簿。...效 果 演 示 一个工作簿中有多个工作,将每个工作拆分成独立的工作簿,生成的工作簿名称为原工作名称,保存至原文件路径下,演示效果如下: V B A 代 码 思路是通过for each循环,将该工作簿中的每个表格对象赋值给...保存至原工作簿的路径下,工作簿的名称为原工作的名称,另存完毕后关闭,最后msgbox弹窗提示完成。 为了提高代码效率,关闭屏幕更新。...代码如下: Sub 拆分工作() '定义变量并赋值 Dim Sht As Worksheet Dim MyBook As Workbook Set MyBook = ThisWorkbook '关闭屏幕更新...Application.ScreenUpdating = False '通过for each循环工作变量 For Each Sht In MyBook.Sheets Sht.Copy

    3.6K30

    快速汇总多个工作簿工作中的数据(Excel工具推荐)

    有时候我们会遇到这种问题: 很多数据散落在很多工作或者工作簿中,由于某项工作我们需要将这些数据做个汇总。...然后有一天我在ExcelHome论坛发现了版主写的一个神器,可以自动生成SQL语句,实现跨工作簿/工作进行数据汇总透视。(点击阅读原文可以找到工具下载链接)下面介绍下该工具的使用方式。...可以看到 1.所有工作簿的所有工作都显示在了左侧的列表里。这个时候我们可以选择部分工作簿/工作进行汇总,也可以全选,看需求而定。此处我们全选。...3.可以看到有“插入工作簿名”,“插入工作名”按钮,这两个按钮的意思是是否需要将工作簿/工作的名称作为数据透视的字段,此处我们假设想看各月的汇总情况,因此需要点击“插入工作簿名”。...我们可以看到这样多个工作簿/工作的数据就汇总到一起了,Expr1000是工作簿名称字段,我们可以看到各个月的销售。

    10.8K10

    使用VBA合并工作

    标签:VBA 从多个Excel工作(子工作)中获取信息,并用子工作中的所有数据填充汇总工作(父工作),这是很多朋友会提到的常见要求。...将新工作信息添加到汇总工作的一种非常快速的方法是遍历工作簿中的所有工作使用VBA合并数据。...图1 工作中的结构如下图2所示。 图2 数据必须从所有子表输入到上图2中的绿色区域。 这里的技巧是过程运行时排除汇总表,以便仅将子表或原始数据复制到汇总表中。...上面的过程首先将清除Summary工作,但标题保持不变,以便将新数据粘贴到该工作中。 此外,还可以将多个工作中的数据复制到Summary工作中某个单元格区域的底部。...如果Summary工作中有以前的信息,或者希望保留汇总工作中原来的信息,则可以使用下面的程序: Sub Combine2() Dim ws As Worksheet Dim sh As

    1.9K30

    Excel公式技巧14: 在主工作中汇总多个工作中满足条件的值

    我们可能熟悉使用INDEX、SMALL等在给定单列或单行数组的情况下,返回满足一个或多个条件的值的列表。这是一项标准的公式技术。...“三维”是经常应用于Excel中特定公式的通用术语,这些公式不仅可以对单列或单行进行操作,也可以对由多列或多行组成的单元格区域进行操作,还可以有效地对多个工作进行操作。...本文提供了一种方法,在给定一个或多个相同布局的工作的情况下,可以创建另一个“主”工作,该工作仅由满足特定条件的所有工作中的数据组成。并且,这里不使用VBA,仅使用公式。...D2:D10"),"Y")) 如果不熟悉跨多个工作使用公式的技术,那么应记下使用INDIRECT的这种公式构造,因为它实际上是我们执行此类计算的唯一方法。...D2:D10"),"Y")) 然后,将这组代表工作名称的文本字符串的两端连接,在后面是所使用工作区域(D2:D10),在前面用单个撇号连接。

    9K21

    Excel小技巧54: 同时在多个工作中输入数据

    excelperfect 很多情形下,我们都需要在多个工作中有同样的数据。此时,可以使用Excel的“组”功能,当在一个工作中输入数据时,这些数据也被同时输入到其它成组的工作中。...如下图1所示,将工作成组后,在一个工作中输入的数据将同时输入到其它工作。 ?...图1 要成组工作,先按住Ctrl键,然后在工作簿左下角单击要加入组中的工作名称,此时工作簿标题中会出现“名称+组”,如下图2所示。 ?...图2 注意,如果一直保持工作“组合”状态,可能会不小心在工作中输入其它工作中不想要的内容。因此,要及时解除组合状态。...单击除用于输入内容的工作外的任意工作名称,则可解除工作组合;或者在工作名称标签中单击右键,在快捷菜单中选取“取消组合工作”命令。

    3.2K20

    VBA小技巧10:删除工作中的错误

    这里将编写VBA代码,用来删除工作指定区域中的错误值,这在很多情况下都很有用。 如下图1所示,有一组数据,但其中有一些错误值,我们想要自动删除这些错误值。 ?...图1 删除错误值的数据如下图2所示。 ? 图2 如果不使用VBA,可以使用Excel的“定位”功能来实现。...在该对话框中,选取“公式”中“错误”前的复选框,如下图3所示。 ? 图3 单击“确定”后,工作中的错误数据单元格会被选择,单击“Delete”键,删除错误值,结果如上图2所示。...也可以使用下面的VBA代码实现: Sub DeleteError1() Range("B2:E8").SpecialCells(xlCellTypeFormulas,16).ClearContents...还可以使用下面的VBA代码: Sub DeleteError2() Dim rngData As Range Dim cell As Range Set rngData = Range

    3.4K30

    Excel公式技巧17: 使用VLOOKUP函数在多个工作中查找相匹配的值(2)

    我们给出了基于在多个工作给定列中匹配单个条件来返回值的解决方案。本文使用与之相同的示例,但是将匹配多个条件,并提供两个解决方案:一个是使用辅助列,另一个不使用辅助列。 下面是3个示例工作: ?...图1:工作Sheet1 ? 图2:工作Sheet2 ?...图4:主工作Master 解决方案1:使用辅助列 可以适当修改上篇文章中给出的公式,使其可以处理这里的情形。首先在每个工作数据区域的左侧插入一个辅助列,该列中的数据为连接要查找的两个列中数据。...VLOOKUP函数在多个工作中查找相匹配的值(1)》。...解决方案2:不使用辅助列 首先定义两个名称。注意,在定义名称时,将活动单元格放置在工作Master的第11行。

    13.9K10
    领券