Set dict = CreateObject("Scripting.Dictionary") 循环直到工作表的数量

2024-02-24

我有一个包含多个工作表的 Excel 文档。当我从第一张纸返回到第二张纸后运行循环跳转时。但在第二张纸上没有打开新字典,并且我在 ln 16 处收到类似“运行时错误 9”的错误。MySeries(Cnt, 2) = Dt(j, 2)

新词典打开时的每张纸我可以做什么?

        Dim Cll As Object
        Dim j As Integer
        Dim y As Integer, MySeries, Dt, MySeries1, MySeries2, MySeries3, MySeries4 As Integer, sum As Double
        For y = 1 To (Worksheets.Count - 1)
        Sheets(y).Select
        Ln = Sheets(y).Range("a1").End(4).Row
        Sheets(y).Range("d2:H" & Ln).Interior.ColorIndex = xlNone
        Dt = Sheets(y).Range("d2:h" & Ln).Value
        Set Cll = CreateObject("Scripting.Dictionary")
        ReDim MySeries(1 To Ln, 1 To 5)
           For j = 1 To UBound(Dt, 1)
                Fnd = Dt(j, 1)
                If Not Cll.exists(Fnd) Then
                    Cnt = Cnt + 1
                    Cll.Add Fnd, Cnt
                    ReDim Preserve MySeries(1 To Ln, 1 To 5)
                     MySeries(Cnt, 1) = Dt(j, 1)
                     MySeries(Cnt, 2) = Dt(j, 2)
                     MySeries(Cnt, 3) = Dt(j, 3)
                     MySeries(Cnt, 4) = Dt(j, 4)
                End If
               MySeries(Cll.Item(Fnd), 5) = MySeries(Cll.Item(Fnd), 5) + Dt(j, 5) / 1000
            Next j
            Sheets(y).Range("a2:h" & Ln).Clear
            Sheets(y).Range("d2").Resize(Cll.Count, 5) = MySeries

        Next y

感谢您的帮助


cnt在此代码中的任何地方都不会重置为 0。虽然这对于字典中的项目可能是也可能不是期望的行为,但它导致了cnt超出了规定的范围MySeries数组(基于ln并在每个新工作表上重置)。

So, if ln第一张纸的值为 20,第二张纸的值为 15,在第二张纸上添加第一项相当于:

Cnt = Cnt + 1 ' new value = 21
Cll.Add Fnd, Cnt ' should be OK
ReDim Preserve MySeries(1 To Ln, 1 To 5) ' MySeries is now (1 to 15, 1 to 5)
MySeries(Cnt, 1) = Dt(j, 1) ' MySeries(21, 1) exceeds the bounds of the array

目前尚不清楚为什么这会失败MySeries(Cnt, 2) = Dt(j, 2)行,因为它应该在上一行上失败 -MySeries(Cnt, 1) = Dt(j, 1)

edit: as per 共产国际的回答 https://stackoverflow.com/a/38778728/2127508, ReDim Preserve只能改变最终尺寸所以MySeries会被重新调整为 (1 到 20, 1 到 5) 但仍然会失败,因为cnt超出数组的边界

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Set dict = CreateObject("Scripting.Dictionary") 循环直到工作表的数量 的相关文章

  • 如果单元格包含 1 个或多个关键字,则更改不同单元格的值

    我有一个列 其中包含一些字符串描述 例如 Bob davids mowing the lawn tipping cows 此外 我将在不同的工作表或列上列出关键字列表 例如工作关键字列表1 davids work 播放关键字列表 mowin
  • 删除 Excel 表格中的所有数据行(第一行除外)

    就在最近 我一直在尝试删除表中的所有数据行 除了第一个数据行 需要清除 一些正在执行的表可能已经没有行 所以我运行它时遇到问题 因为使用 DataBodyRange Rows Count在没有行 只有页眉和 或页脚 的表上会导致错误 我到处
  • 使用 UiPath 循环 Excel 文件中的 URL

    我尝试了几种方法 但不知怎的 它们看起来不干净 我有一个 Excel 格式的 URL 文件 一列中有 400 多个 URL 我希望 UiPath 从该文件中读取并一一浏览这些 URL 我尝试让 导航到 从从 Excel 读取的变量中读取 但
  • Excel 的查找和查找下一个 VBA

    我一直在试图弄清楚如何处理这个问题 但基本上我想要一种方法来打印 B 列中的值 给定与 A 列匹配的特定值 例如 Column A Column B 1 ABC 2 DEF 3 GHI 1 JKL 我想在使用 find findnext 或
  • Java固定内存映射

    有没有一种简单 高效的Map允许限制映射使用的内存的实现 我的用例是 我想在创建时动态分配大部分可用内存 但我不希望OutOFMemoryError将来的任何时候 基本上 我想使用这个地图作为缓存 但我想避免像这样的重缓存实现EHCache
  • 我可以使用基于范围的 for 循环轻松迭代地图的值吗?

    是否可以迭代a中的所有值std map仅使用 foreach 这是我当前的代码 std map
  • Python 多处理类内共享字典

    我想了解多处理和管理器如何工作以共享内存 我有一堂课 在课堂上创建了一本字典 init我想使用多处理来调用填充字典的类函数 每个进程添加不同的键 import multiprocessing as mp from multiprocessi
  • WebAPI 和 Angular JS Excel 文件下载 - 文件损坏

    我正在 WebAPI 中生成 Excel 文件 我将其 存储 在内存流中 然后放入响应 如下所示 var result new HttpResponseMessage HttpStatusCode OK Content new Stream
  • VBA C# DLL 未注册

    我制作了一个 C NET dll 我想从 VBA 运行它而不注册它 我找到了解决方案there https stackoverflow com a 13333819并且它可以完美工作 但前提是程序集是使用 Framework NET 3 5
  • CURL 相当于使用 VBA 的 POST JSON 数据

    我知道这与之前提出的一些问题类似 但有些东西仍然对我不起作用 如何执行以下命令 curl X POST data statements json H Content Type application json user username p
  • 将 Python 字典中的键替换为唯一值

    a 0 PtpMotion 1 PtpMotion 2 LinMotion 3 LinMotion 4 LinMotion 5 LinMotion 6 LinMotion 7 LinMotion 8 LinMotion 9 PtpMotio
  • 您可以调整用户窗体的这些代码吗:使其小而高效

    当 userfrom 按以下顺序激活时 我想在运行时添加动态用户表单控件 例如 标签 文本框 我想要类似以下的东西 当用户表单激活时 它需要询问用户字段的数量 他 她想要插入 如果用户回答7 则需要按以下顺序添加字段 3 列顺序 标签1 文
  • 在 Django(Python) 中向用户提供 Excel(xlsx) 文件下载

    我正在尝试使用 Django 创建和提供 Excel 文件 我有一个 jar 文件 它获取参数并根据参数生成 excel 文件 并且它可以正常工作 但是 当我尝试获取生成的文件并将其提供给用户下载时 文件损坏了 它的大小为 0kb 这是我用
  • 确定相关词的编程方式?

    使用网络服务或软件库 我希望能够识别与词根相关的单词 例如 座位 和 安全带 共享词根 座位 但 西雅图 不会被视为匹配 简单的字符串比较对于这类事情似乎是不可行的 除了定义我自己的字典之外 是否有任何库或 Web 服务不仅可以返回单词定义
  • 如何从另一个 Excel 实例引用工作簿

    我相信我的问题相当简单 我有一个工作簿 我正在使用它从另一个软件 SAP 获取一些数据 当我从软件导出数据时 它会自动打开一个 xlsx 文件 然后我需要做的是从该文件复制一些数据 粘贴到我的原始工作簿上 然后关闭该文件 我的代码中给我带来
  • 如何更新由基类的可变默认参数创建的属性,而不修改该参数? [复制]

    这个问题在这里已经有答案了 我发现新式类中的子类化和字典更新存在一个奇怪的问题 Python 2 6 2 r262 71605 Apr 14 2009 22 40 02 MSC v 1500 32 bit Intel on win32 gt
  • 如何从嵌套字典中获取键?

    我在字典中的字典中有一个列表 FirmA ProductA Color1 Color2 Color3 我想构建第一公司字典级别的键列表 然后 我需要根据公司密钥访问第二级产品字典 最后 我需要根据字典级别 2 产品 中的产品密钥访问颜色列表
  • 如何暂停特定时间? (Excel/VBA)

    我有一个 Excel 工作表 其中包含以下宏 我想每秒循环一次 但如果我能找到执行此操作的函数 那就很危险了 难道不可能吗 Sub Macro1 Macro1 Macro Do Calculate Here I want to wait f
  • Excel VBA 用户窗体 - 当发生变化时执行 Sub

    我有一个包含很多文本框的用户表单 当这些文本框的值发生变化时 我需要通过调用子例程 AutoCalc 根据文本框值重新计算最终结果值 我有大约 25 个框 我不想向每个调用上述子例程的文本框单独添加 Change 事件 当某些值发生变化时调
  • 如果一个数字写在方括号中,例如[5],这意味着什么

    我正在开发一个旧版 VBA Excel 应用程序 并偶然发现了一些代码行 其中长字符串 从文件中读取 被切成碎片 这些行看起来像这样 Range E16 Value Mid line 49 6 显然 写 6 意味着需要 6 个字符 但我从未

随机推荐

  • 我的 Zend 框架“引用”混乱

    我有一个可能非常简单的问题 在 Zend Framework 手册或其他地方找不到令人满意的 主观看到的 答案 有很多方法可以将我的 php 变量移交给我的 sql 查询 以至于我失去了概述 并且可能我对一般引用缺乏一些理解 准备好的报表
  • 带回溯的数独求解算法

    我正在寻求实现一种非常简单的算法 该算法使用强力回溯来解决数独网格 我面临的问题是 在我的实现中 我包含了两个实例变量Sudoku类称为row and col 对应于表示数独网格的二维数组中空单元格的行和列 When my solve 方法
  • CodeIgniter 和 HMVC 问题

    首先 对这篇文章造成的任何不便表示歉意 因为这是我第一次在这里发布问题 我需要更多时间来适应这个问题 Q1 我想创建 2 个 主控制器 FrontEnd and BackEnd像这样 MY 控制器延伸CI 控制器 FrontEnd延伸MY
  • 对象字面量中属性名称周围的方括号意味着什么?

    我用JS写了一段时间了 还没有使用过这种形式 dist files bpr lib Monster min js the 它有效 我只是以前没有使用过或见过它 最近才使用 ES6 它们被称为 计算属性名称 From MDN https de
  • java中不使用乘法、除法和取模运算符来除两个整数

    我写了一个代码 该代码在将两个数字相除后找出商 但不使用乘法 除法或取模运算符 My code public int divide int dividend int divisor int diff 0 count 0 int fun di
  • 如何为 Android 启用 AllOpen 插件

    我正在尝试添加allopen https kotlinlang org docs reference compiler plugins html all open compiler plugin安卓插件 我把这个添加到我的build gra
  • 用于查找计划任务向导任务信息的脚本

    我知道有一个命令可以查找计算机的计划任务 但我想获取有关计划任务本身的更多信息 我想知道计划任务的执行时间和时间以及计划任务的名称和区域 有任何想法吗 Set TS CreateObject Schedule Service TS Conn
  • python,flask,网络应用程序安全[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在 Flask 上部署时 我想从 Web 应用程序编辑 sqlite 数据库 并且遇到了 chmod 权限问题 因此我只是让 root 以
  • 在 LESS 中生成供应商前缀

    我已经将这种方法拼凑在一起 使用 LESS 生成供应商前缀的属性和动画 首先是一些工厂函数 vendorprefix property value webkit property value moz property value ms pr
  • 使用 shell 脚本制作文件的多个副本

    我正在尝试编写一个小型 shell 脚本来制作文件的多个副本 我可以将文件名作为输入 但不能将副本数作为输入 这是我写的 但我无法通过NUMBER变量到for循环 echo n Enter filename read FILENAME ec
  • 编辑文本框中提示的自定义位置。

    我想知道是否有任何方法可以在 编辑文本 视图的底部获得提示 然后用户开始在框的顶部输入文本 作为一个额外的问题 有什么办法可以让提示在用户开始输入文本后不会消失 您可以使用 gravity 属性设置文本的位置 如http developer
  • 无法通过在 JavaScript 中识别对象的父 ID 将对象推入父数组

    我有一个 JSON 数组 其属性为 id 和parentActivityId scope data id 1 activityName Drilling parentActivityId 0 items id 2 activityName
  • 有人能用例子解释一下java EE中的演示层.业务层.集成层这些词吗?

    Java EE 中的这些是什么 表示层 商业层 集成层 我想通过示例了解这些模式是什么 表示层 用户看到的内容 通常是 Web 应用程序 业务层 应用程序的所有逻辑都在其中执行 集成层 将系统连接到其他系统的层 通过数据库连接 JMS We
  • Java Getter 和 Setter

    在 Java 中是否有更好的标准方法来创建 getter 和 setter 必须为每个变量显式定义 getter 和 setter 这是相当冗长的 有没有更好的标准注释方法 Spring有这样的东西吗 即使 C 也有属性 我不确定你是否会认
  • 在 React 中使用 .map() 时处理空数组

    我有一个 React JS 组件 它将映射notes要显示的变量 然而 我遇到了没有笔记并收到错误的问题 解决这个问题的正确方法是什么 这是代码 import React Component from react class List ex
  • 为什么 __getitem__(key) 和 get(key) 明显慢于 [key]?

    据我了解 括号只不过是一个包装器 getitem 以下是我对此进行基准测试的方法 首先 我生成了一个半大字典 items for i in range 1000000 items i 1 然后 我使用cProfile测试了以下三个功能 de
  • 通过 JavaScript 将变量从一个 html 页面传递到另一页面

    我有两个页面 第 1 页 和 第 2 页 在第 1 页上有一个文本框 其值为例如100 最后有一个按钮 通过按下按钮 我希望 javascript 将文本框的值保存在全局 变量中并跳转到第 2 页 通过 window onload 我想要第
  • 在树视图 Odoo 13 外部添加按钮

    再会 有没有办法在 Odoo 的树视图上方添加一个按钮 我想每当用户单击按钮时运行一个函数 如果这不可能 你能帮我找到替代方案吗 这是我查看的代码
  • Rails、Backbone、PhoneGap、CORS(由于 Access-Control-Allow-Origin 错误而不允许)

    我正在构建一个使用backbone js 和Rails 后端的Phonegap 应用程序 创建新用户时 我收到与 CORS 相关的错误 我正在运行我的 PhoneGap Web 应用程序http 0 0 0 0 8000 python m
  • Set dict = CreateObject("Scripting.Dictionary") 循环直到工作表的数量

    我有一个包含多个工作表的 Excel 文档 当我从第一张纸返回到第二张纸后运行循环跳转时 但在第二张纸上没有打开新字典 并且我在 ln 16 处收到类似 运行时错误 9 的错误 MySeries Cnt 2 Dt j 2 新词典打开时的每张