从变量引用另一个工作簿中的工作表时下标超出范围

2024-03-15

看图片:http://s12.postimg.org/ov8djtuh9/Capture.jpg http://s12.postimg.org/ov8djtuh9/Capture.jpg

Context:尝试激活另一个工作簿中的工作表(变量:cSheet),并将来自不同工作簿的复制数据的数据粘贴到此处。每当我尝试直接使用变量(即 Worksheets(Name).Activate)激活或尝试使用变量定义工作表然后激活它时,我都会收到下标超出范围错误。我还尝试过其他编码风格,使用“With Worksheet”等,我的代码更长,但我重新开始,因为每次我修复某些内容时,都会出现其他问题。所以,坚持基础。任何帮助将不胜感激。

Sub GenSumRep()

Dim AutoSR As Workbook
Dim asrSheet As Worksheet
Dim tempWB As Workbook
Dim dataWB As Workbook
Dim SecName As String
Dim oldcell As String
Dim nsName As String
Dim cSheet As Worksheet

Set AutoSR = ActiveWorkbook
Set asrSheet = AutoSR.ActiveSheet

For a = 3 To 10

    SecName = asrSheet.Range("D" & a).Value

    If SecName <> "" Then

    Workbooks.Open Range("B" & a).Value
    Set tempWB = ActiveWorkbook
    'tempWB.Windows(1).Visible = False

    AutoSR.Activate

    Workbooks.Open Range("C" & a).Value
    Set dataWB = ActiveWorkbook
    'dataWB.Windows(1).Visible = False

    AutoSR.Activate

        'Copy paste data
        For b = 24 To 29
        oldcell = Range("C" & b).Value
            If b = 24 Then
            nsName = Trim(SecName) & " Data"
            Set cSheet = tempWB.Sheets(nsName)
            Else
            nsName = asrSheet.Range("B" & b).Value
            Set cSheet = tempWB.Sheets(nsName)
            End If

        'Copy
        dataWB.Activate
        Range(oldcell).Select
        Range(Selection, Selection.End(xlToRight)).Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy

        'Paste
        tempWB.Activate
        cSheet.Select
        Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Application.CutCopyMode = False

        b = b + 1
        Next b

    End If

a = a + 1

Next a

End Sub

您收到该错误的原因只有一个:您提供的名称在集合中不存在!

根据您的代码,有几个可能的原因:

  • Your nsName变量包含隐藏字符,即使它看起来正确,也会使其有所不同。
  • 您正在错误的工作簿中查找工作表。

根据您的评论,您似乎正在查找错误的工作簿。检查这些下标错误的一个好方法是迭代集合并打印出Names包含在其中。

Dim sht as Worksheet    
For Each sht In tempWB.Sheets
    Debug.Print sht.Name
Next sht

一般来说,最好摆脱对Select and Activate这样您就不会依赖接口来获取对象。看这篇关于避免的文章Select and Activate https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros了解更多信息。

应用于代码的一种想法是直接分配工作簿,而无需ActiveWorkbook:

Set tempWB = Workbooks.Open(asrSheet.Range("B" & a).Value)
Set dataWB = Workbooks.Open(asrSheet.Range("C" & a).Value)

代替:

    Workbooks.Open Range("B" & a).Value
    Set tempWB = ActiveWorkbook
    'tempWB.Windows(1).Visible = False

    AutoSR.Activate

    Workbooks.Open Range("C" & a).Value
    Set dataWB = ActiveWorkbook
    'dataWB.Windows(1).Visible = False
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从变量引用另一个工作簿中的工作表时下标超出范围 的相关文章

  • 如何在Excel中识别给定月份的第一,第二等星期一或一周中的其他日期

    我在网上查了一下 但公式看起来很复杂 有什么巧妙的建议吗 例如 我需要一个公式来确定哪个日期是 2014 年 8 月的第一个星期一 类似于第二个星期一的使用 等等 谢谢 一般来说 你可以找到n 第一个x给定的一天M and Y用这个公式 D
  • 如何使用 Java Apache POI 隐藏 Excel 工作表中以下未使用的行?

    我正在使用数据库中的数据填充模板 Excel 工作表 for Map
  • 基于多个动态过滤条件过滤Excel范围

    我想过滤数据集 考虑几个可以根据可能值列表动态更改的过滤条件 我有过滤条件team其具有以下值 Team A Team B ALL 其中 ALL 是代表所有团队的通配符 对于第二个标准release 如果我想在过滤器中包含多个版本 则值之间
  • 在 VBA 中使用 getElementsByClassName

    我正在使用此代码从页面获取产品名称 页面代码是 div class product shop col sm 7 div class product name h1 Claro Glass 1 5 L Rectangular Air Tigh
  • 将 Python Selenium 输出写入 Excel

    我编写了一个脚本来从在线网站上抓取产品信息 目标是将这些信息写入 Excel 文件 由于我的Python知识有限 我只知道如何在Powershell中使用Out file导出 但结果是每个产品的信息都打印在不同的行上 我希望每种产品都有一条
  • VBA 访问:从另一个表单的代码刷新一个表单

    编辑 没关系有人帮助了我 form name recalc 或 form name refresh form main recalc 我有两种形式 主要 详细信息 在 主 表单中 我有一个在对话框中打开 详细信息 的按钮 问题是我在 详细信
  • 选择在 Excel 宏(VBA 中的范围对象)中具有值的列

    如何修改 VBA 中的这一行以仅选择具有值的列 Set rng Range A1 Range A65536 End xlUp SpecialCells xlCellTypeVisible 我不认为我做的事情是正确的CountLarge财产是
  • 标准 VBA 函数“找不到项目或库”

    因此 我必须在我的 PC 上运行别人的 Excel 应用程序 并且在标准函数 如日期 格式 十六进制 中间等 上收到 找不到项目或库 的信息 一些研究表明 如果我在这些函数前加上 VBA 前缀 如 VBA Date 中那样 它会正常工作 网
  • 使用 VBA 通过简单命令从非连续范围的并集获取值到数组中(无循环)

    我有以下任务 表面上很简单 使用 VBA 将电子表格上多个列的值复制到二维数组中 为了让生活更有趣 这些柱子并不相邻 但它们的长度都相同 显然 可以通过依次循环每个元素来做到这一点 但这看起来非常不优雅 我希望有一个更紧凑的解决方案 但我很
  • 如何在不滚动的情况下截取整个电子邮件正文?

    我正在使用 OL2010 想要制作整个电子邮件的屏幕截图 不仅仅是 屏幕 可以用VBA或者外部程序来完成吗 有一个类似的问题 https stackoverflow com questions 4176340关于如何使用 C 实现这一点 注
  • 如何使用Matlab将数据保存到Excel表格中?

    我想将数据以表格形式保存在 Excel 工作表中 它应该看起来像 Name Age R no Gpa Adnan 24 18 3 55 Ahmad 22 12 3 44 Usman 23 22 3 00 每次当我执行我的文件时类数据 m 下
  • Excel VBA 过滤和复制粘贴数据

    给定一个数据集 假设有 10 列 在 A 列中我有日期 在 B 列中我有 我想仅过滤 A 列 2014 年的数据 B 列 ActiveSheet Range A 1 AR 1617 AutoFilter Field 5 Operator x
  • VBA XML V6.0 如何让它等待页面加载?

    我一直在努力寻找答案 但似乎找不到任何有用的东西 基本上 我是从一个网站上拉取的 当您在该页面上时 该网站会加载更多项目 我希望我的代码在加载完成后提取最终数据 但不知道如何让 XML httprequest 等待 Edited Sub p
  • 字典、集合和数组的比较

    我正在尝试找出字典与集合和数组相比的相对优点和功能 我发现了一篇很棒的文章here http www experts exchange com articles 3391 Using the Dictionary Class in VBA
  • 如何在 Azure 逻辑应用中解析 Excel 电子表格

    我需要使用 Azure 逻辑应用从 Excel 电子表格中解析和提取列信息 我已经为我的逻辑应用程序设置了从 Outlook 检索最新未读电子邮件的功能 此外 我的逻辑应用程序执行 FOR EACH 来读取所有附件 来自未读电子邮件 并确保
  • MS Access - 粘贴确认事件后

    当用户将记录直接粘贴到数据表子报表中时 是否可以在显示粘贴确认消息后捕获事件 我需要它能够在审计表中创建新记录时进行记录 通过捕获更新前 更新后和插入事件 我可以轻松创建已添加的记录集合 准备将详细信息插入审核日志 但是在所有这些事件触发后
  • 复制一张工作表上的静态范围,然后根据单元格中的单个值粘贴到另一张工作表中的动态范围

    我对这个问题分为三个部分 我在 Sheet1 A1 中有一个带有周数的单元格 我在 Sheet1 B1 F1 中有一个需要复制的静态范围 然后 我需要将该值粘贴到 Sheet2 中的动态范围中 偏移量为行的周数 这是我正在为我经常使用的工作
  • EPPlus Excel 行高不一致

    我已经使用 EPPlus 生成了一个 excel 文件 在 MS Office 2007 中一切似乎都很完美 但客户端使用的是 MS Office 2010 2013 并且在第 29 行之后未设置行高 这是一个非常奇怪的问题 我已经尝试了
  • 在Google电子表格中划分整列

    我是 Google 电子表格的一个相对较新的用户 我希望 B 列中的每个单元格都是 A 列 同一行 中内容除以 5 的结果 B1 B2 B3 等 商 应为 A1 A2 A3 等 被除数 除以 5 除数 在示例中 B1 A1 5 我知道一项一
  • 如何使用VBA根据条件删除Excel中的行?

    我目前正在构建一个宏来格式化数据表并删除不适用的数据行 具体来说 我希望删除列 L ABC 的行以及删除列 AA DEF 的行 到目前为止 我已经实现了第一个目标 但还没有实现第二个目标 现有代码是 Dim LastRow As Integ

随机推荐

  • Jquery中的asp标签文本更改事件

    当asp标签的值发生变化时如何触发jquery方法 我已经尝试过这个 但它不起作用 lbladdsupplier change function alert Changed The change仅当表单元素值更改时才会触发事件 在这种情况下
  • 用于编码 RGB 值的位移位和按位运算

    我想将 RGB 颜色编码为单个整数值 假设编码算法如下 int code blue 256 256 green 256 red 如何使用位移位和 或按位运算符对 RGB 分量进行编码 解码 int blueMask 0xFF0000 gre
  • 使用 pandas 从每组中随机选择一行

    我有一个熊猫数据框df显示如下 Month Day mnthShape 1 1 1 016754224 1 1 1 099451003 1 1 0 963911929 1 2 1 016754224 1 1 1 099451003 1 2
  • 将 SPSS 元数据变量标签、值标签、数据类型等导出到自定义文本文件

    我们有一个很大的 SPSS 文件 大小为 5MB 包含大约 1400 个变量 我们正在将所有内容迁移到数据库 为了配置表格和表单等 我们需要 SPSS 文件中的元数据 但采用特定的自定义格式 所以如果变量视图是这样的 Name Label
  • 如何配置 Sphinx 有条件地排除某些页面?

    使用 Sphinx 生成文档时 我希望能够生成文档的两个版本 一个包含所有内容 另一个仅包含一组特定的页面 实现这一目标的最佳方法是什么 我可以编写一个构建脚本来移动文件来实现此目的 但如果有一种方法可以告诉 sphinx 在特定构建期间排
  • 更改密码后显示消息吗?

    我正在使用默认更改密码机制 https docs djangoproject com en dev topics auth django contrib auth views password change由 django 提供 我在用着p
  • 结账开始观察者

    Magento 中是否有观察者来检测结帐过程的开始 这将包括点击页面checkout onepage or checkout onestepcheckout 如果可能的话 我想避免覆盖控制器 每个控制器操作都会导致多个目标事件被触发Mage
  • ajax 问题 - firebug 中的 200 OK 但没有响应正文的红色消息

    据我所知 我有与跨域相关的 ajax 小问题 在本地机器上我用一些ajax创建了html示例 在注册文本字段中 用户输入 用户名 每次击键时 ajax 都会将其发送到 本地 Tomcat servlet 检查该用户名是否已被使用 并发回 已
  • TypeError;Article.find() 不是 Sails.js 中的函数

    我正在使用 sails js 并收到错误 Articles find is not a function 以下是datastore js mongodb adapter require sails mongo url mongodb loc
  • 如何对没有分支文件夹的 TFS Team 项目进行分支

    我有一个这样的团队项目 DefaultCollection Project 1 Project 2 Project 3 Somefile txt Somefile2 doc 所有文件和项目都位于团队项目的根目录中 我没有 主干 和 分支 文
  • 使用 WordPress 高级自定义字段时“url”的字符串偏移量非法

    我正在将 Bootstrap 模板转换为 WordPress 主题 对于自定义字段 我正在使用该插件高级自定义字段 https wordpress org plugins advanced custom fields 问题是当我尝试在以下命
  • 使用多个 OR || 简化 IF 语句相同变量的条件

    这是我的代码 var something four if something one something two something three something five something six something seven do
  • 使用@staticmethod 有什么好处吗?

    我想知道您是否在代码中使用 staticmethod 装饰器 就我个人而言 我不使用它 因为写 staticmethod 比写 self 需要更多的字母 使用它的唯一好处 对我来说 可能是代码更加清晰 但由于我通常为 sphinx 编写方法
  • C++ 程序无法使用 Clang 和 Visual Studio 2010 Express 进行编译

    我正在尝试使用 Visual C 2010 Express 编译本教程中所述的源代码 http kevinaboos wordpress com 2013 07 23 clang tutorial part ii libtooling ex
  • 如何以编程方式找出机器的上次登录时间?

    我想 a 以编程方式和 b 远程查找用户成功登录 Windows 计算机的最后日期 时间 通过远程桌面或控制台 我愿意采用任何典型的 Windows 语言 C C VB 批处理文件 JScript 等 但任何解决方案都很好 尝试这个 pub
  • 将朴素贝叶斯训练分类器保存在 NLTK 中

    我对如何保存经过训练的分类器有点困惑 例如 每次我想使用分类器时重新训练它显然非常糟糕且缓慢 我如何保存它并在需要时再次加载它 代码如下 提前感谢您的帮助 我正在使用 Python 和 NLTK 朴素贝叶斯分类器 classifier nl
  • 为什么说C++不支持参数多态?

    根据维基百科页面参数多态性 https en wikipedia org wiki Parametric polymorphism 类型多态性的一些实现表面上与参数多态性相似 同时也引入了特殊方面 C 模板专门化就是一个例子 问题 为什么说
  • 哪些 UNIX 命令支持彩色输出?

    我喜欢使用支持彩色输出的 UNIX bash 命令 因此 我定义了一些别名 它们自动启用我知道支持此选项的命令的彩色输出 但是 我确信有数百个命令支持彩色输出 我想知道它们是什么 我的那些 bash aliases文件是 ls color
  • .NET - 调整图像大小的边框

    我正在尝试在 NET 中调整图像大小 但调整大小后的图像周围出现微弱的黑色边框 我找到了一个帖子 http social msdn microsoft com forums en US csharpgeneral thread cf7650
  • 从变量引用另一个工作簿中的工作表时下标超出范围

    看图片 http s12 postimg org ov8djtuh9 Capture jpg http s12 postimg org ov8djtuh9 Capture jpg Context 尝试激活另一个工作簿中的工作表 变量 cSh