我在 VBA 中的代码使索引超出范围,但我确信数组的长度正确[重复]

2024-01-01

我需要设置val1 and val2分配给变量的数字total。无论我改变变量什么totalto,0-8,表示索引越界。我还打印了我用 MsgBox 引用的每个列表的长度,它显示为 8。

我尝试将索引更改为该范围内的任何位置,但仍然会引发错误。

Sub dataValidation()
    Dim totalFraud As Range
    Dim leftTheBank As Range
    Dim stopped As Range
    Dim totalFraudCells As Variant
    Dim leftTheBankCells As Variant
    Dim stoppedCells As Variant
    Dim fraudCell As Variant
    Dim leftCell As Variant
    Dim stopCell As Variant
    Dim total As Integer
    Dim wb As Workbook
    Dim ws As Worksheet

    Set ws = Sheets("Sheet1")
    ws.Select

    Set totalFraud = ws.Range("TotalFraud")
    Set leftTheBank = ws.Range("LeftBank")
    Set stopped = ws.Range("Stopped")

    totalFraudCells = totalFraud.Value
    leftTheBankCells = leftTheBank.Value
    stoppedCells = stopped.Value

    total = 0

    For Count = 0 To UBound(totalFraudCells) - LBound(totalFraudCells) + 1
        Dim sum As Integer
        Dim val1 As Integer
        Dim val2 As Integer
    
        val1 = leftTheBankCells(3)
        val2 = stoppedCells(3)
    
        sum = val1 + val2
    
        total = total + 1 
    Next
End Sub

我希望在这种情况下val1 and val2设置为数组的索引 0,两者都应该是整数。


For Count = 0 To UBound(totalFraudCells) - LBound(totalFraudCells) + 1

您假设下限是0.

Dim totalFraud As Range
...
totalFraudCells = totalFraud.Value

But totalFraudCells是一个基于 1 的二维变体数组。

这些同样如此:

val1 = leftTheBankCells(3)
val2 = stoppedCells(3)

If you know或者希望处理一维数组,您可以使用Application.WorksheetFunction.Transpose让他们这样:

totalFraudCells = Application.WorksheetFunction.Transpose(totalFraud.Value)
leftTheBankCells = Application.WorksheetFunction.Transpose(leftTheBank.Value)
stoppedCells = Application.WorksheetFunction.Transpose(stopped.Value)

现在您正在查看一维数组,但它们仍然是基于一的。

根据经验,不要假设数组的基数是什么。使用LBound计算你的下限For loop:

For Count = LBound(totalFraudCells) To UBound(totalFraudCells)

有了这个每一个值Count将在范围内totalFraudCells array.


如果你是not处理单列范围,那么你must处理变体数组的二维性质;LBound and UBound可以采用第二个参数作为您想要的下限或上限的维度:

For Count = LBound(totalFraudCells, 1) To UBound(totalFraudCells, 1)

如果您需要迭代所有行和列,你需要嵌套循环,内循环迭代LBound(totalFraudCells, 2) To UBound(totalFraudCells, 2)对于第一维中的每个下标。

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

我在 VBA 中的代码使索引超出范围,但我确信数组的长度正确[重复] 的相关文章

  • 在 vba 上将值粘贴到另一个工作簿工作表上时出现问题

    我有以下代码 以便从工作簿复制工作表并将其粘贴到另一个名为 Control de precios 的工作簿的工作表 1 上 Sub createSpreadSheet Set NewBook Workbooks Add With NewBo
  • 通过文本自动创建到另一个工作表的超链接

    我想知道如何基于各自工作表中两个单元格具有的相同文本值 通过脚本自动创建从一个 Excel 工作表到另一个 Excel 工作表的超链接 如果这可以在没有脚本的情况下完成 使用某种公式 如 VLOOKUP 这将是更好的选择 谢谢你的时间 使用
  • 如何从 PowerQuery/Excel 数据模型中具有多对多关系的两个表中选取数据?

    这是我第一次在 stackoverflow 上提问 让我们看看进展如何 我正在尝试将不同规模资产的场景管理器连接到其所属的成本时间序列 以便我可以计算属于特定场景的资产配置的现金流 这就是我需要连接的两个表 简而言之 的样子 场景管理器 S
  • Mono for Android,读取和写入 XLSX

    我正在使用 Mono for Android 开发一个应用程序 我需要读取和创建 XLSX Excel 文件的功能 我尝试过EPPlus和NPOI 并快速浏览了一下微软的Open XML SDK 发现了以下问题 EPPlus 需要 Wind
  • 有没有办法使用 openpyxl 或 xlsxwriter 保护工作簿?

    我正在尝试自动化 Excel 报告 并且我希望用户不要尝试重命名或重新排序工作表 虽然我使用 xlsxwriter 保护单个单元格没有问题 但我没有看到保护工作簿本身的选项 我正在寻找 openpyxl 但教程似乎没有任何效果 编辑 我现在
  • 更改索引设置访问 VBA

    我正在尝试自动化 Access 中的流程 我希望自动化的步骤之一是更改表中某些字段的索引设置 我需要这样做来提高后续查询的速度 使用索引查询速度大约快 100 倍 无论如何 假设我的表名为 Cars 如下所示 ID Name Charact
  • 如果字符串包含列表中的单词,则返回与列表值相邻的值

    目前我有一组单元格 每个单元格在无用的信息中都有一个唯一的标识符 我还有这些唯一标识符的列表 以及每个标识符对应的值 我想做的是找到一个单元格包含哪个标识符 如果有的话 然后输出相应的值 下面是一个例子 https i stack imgu
  • Excel如何获取一个时间间隔内的小时数?

    我有两列 Night shift start 19 00 Night end 04 00 我每天都有一些日期列 Work started 07 30 Worked ended 22 00 我想获取夜班开始和夜班结束之间的小数小时数 我需要计
  • 在 PowerPoint 中查找文本并替换为 Excel 单元格中的文本

    我正在尝试查找 PowerPoint 幻灯片中的单词列表并将其替换为 Excel 文件中单元格中的值 我在 PowerPoint 中运行 VBA 但出现此错误 运行时错误 2147024809 80070057 指定的值超出范围 代码似乎停
  • 基于非零的多维数组

    我正在使用以下命令从电子表格中提取单元格Interopt ExcelAPI 当我打电话时 object rangeValues object range get Value XlRangeValueDataType xlRangeValue
  • 列表框:添加组合框作为项目?

    是否可以将列表框的每个项目都作为组合框 我需要这个 因为我将列表框设置为可检查 然后我需要让用户从列表中每个元素的不同选项中进行选择 Thanks 如果您不打算分发您的应用程序 那么您还可以查看 TreeView 控件 请参阅此示例 COD
  • 如何在 MS Word 中的每个标题末尾应用宏?

    我有一个包含各种标题的文档 因此不一定是标题 1 或标题 2 而是所有类型的标题 我想做的是编写一个宏 例如 删除每个标题末尾的 2 个空格 例如 我们有 这是一个标题 在标题的最后 我会这样做 Selection Delete Unit
  • 使用 Jquery Easyui 将数据网格导出到 Excel

    我是 json 新手 我使用 php 从 mysql 表生成了 jason 数据 并希望将生成的 json 导出为 xls 格式 考试导出 php
  • schema.ini 文件不适用于 MS Access

    我有一堆 csv 文件 我通过 VBA 将它们导入到 Access 中的表中 我在与导入的 csv 文件相同的目录中还有一个 schema ini 文件 尽管在 ini 文件中字段被指定为双精度类型 但它们在 Access 中会转换为文本类
  • Range.End() 困惑

    我有一个关于 VBA 中 Range End 属性的一般性问题 我已经阅读了有关该房产的信息here http msdn microsoft com en us library bb221181 aspx 但我还是很困惑 例子 With w
  • 使用 Cucumber Scenario Outline 处理 Excel 电子表格

    如果可能的话 我试图找到一种更优雅的方法来处理从与 Excel 电子表格行 第 n 个 相关的 Cucumber Scenario Outline 中调用第 n 个数字 目前 我正在使用迭代编号来定义要从中提取数据的 Excel 电子表格的
  • 非相邻单元格作为数组函数的输入(MIN 和 ISBLANK)

    提出了这个问题 由于具体问题的答案是一个拼写错误 因此被删除 https stackoverflow com questions 59289065 excel non adjecent cells as input to array fun
  • Windows Azure 远程站点“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册[重复]

    这个问题在这里已经有答案了 以下代码在我的本地开发计算机上可以正常运行 但是当我部署它时 我收到以下错误消息Azure 远程网站 我已经查看了SO答案和谷歌搜索结果 但我仍然不清楚我必须在本地计算机上安装什么 这样当我将代码推送到Azure
  • 调用退出后应用程序未退出

    我有一个小问题 我似乎无法弄清楚 我正在将 DataGridView 它的内容 保存到 xls 文件中 我这样做没有任何问题 除了在我的任务管理器中它仍然显示它正在运行 我已致电 xlApp Application Quit 这被声明为 D
  • 具有多个条件(全部等于相同值)的 IF 语句的替代方案

    还有比这更好的方法吗 假设所有变量都为零 If var1 0 Or var2 0 Or var3 0 Or var4 0 Or var5 0 Or var6 0 Then do something End If 你可以用Select Cas

随机推荐

  • 樱桃皮和wxpython

    我正在尝试使用 wxpython ui 制作一个cherrypy 应用程序 问题是两个库都使用闭环事件处理程序 有办法让它发挥作用吗 如果我有 wx ui startcherrypy 会锁定 ui 吗 请参阅我的回答CherryPy 干扰
  • 如何将 csv 文件从 google 云端硬盘上传(并使用它)到 google colaboratory

    想尝试一下 python 和 google colaboratoryseemed最简单的选择 我的谷歌驱动器中有一些文件 想将它们上传到谷歌合作实验室 所以这是我正在使用的代码 pip install U q PyDrive from py
  • Jquery .ajax() 本地测试

    我有一个小的 ajax 函数 它尝试在文档准备好后加载一些内容 document ready function ajax url php accounts blocks php cache false beforeSend function
  • 从 Javascript 触发回发

    好的 我知道这个问题已经被问了很多次 并且我在网上找到了大量有关此问题的信息 不幸的是 这些似乎都不适合我 基本上 我运行一些 JavaScript 来响应用户事件 JavaScript 获取一些信息 一个 int 然后我想将其返回到服务器
  • Google Map API v3 ~ 只需关闭信息窗口?

    尝试简单地关闭信息窗口 我已经有了一系列标记 所以像这样的东西会很好 谢谢 MyMarkers i infowindow close 随着v3 API http code google com apis maps documentation
  • 在一列或多列中查找独特的单词?

    我正在考虑在我的 ASP NET 网站中实现标签 在研究了几种算法之后 我倾向于拥有几个包含一个或多个标签词的数据库列 然后 我将使用全文搜索来查找具有指定标签的行 所有这一切看起来都非常简单 除了一件事 我需要能够生成可用标签列表 用户可
  • R - 按组有条件地对多列进行升序或降序排序

    我以前没有遇到过这个问题 我想根据条件对组内的多列进行升序或降序排序 library dplyr data lt mtcars gt select mpg cyl disp If cyl lt 4 我想排序mpg disp 按该优先级 按升
  • BB10 Cascade 命令行开发

    如果您了解 Qt 那么 BB10 的编程现在应该会容易得多 所以我决定尝试一下 并且我一直在阅读以下内容 https developer blackberry com cascades documentation getting start
  • 在图形环境中,术语“橡皮筋”是什么意思?

    在不同的地方 我都看到过在指代图形绘制时使用的术语 橡皮筋 在这种情况下 人们似乎建议使用 XOR 进行绘图 我的印象是该术语指的是一种用于避免重新绘制整个框架的特定绘图技术 然而 我还没有找到任何可以准确定义 橡皮筋 一词含义的内容 只是
  • 构造函数作为委托 - 在 C# 中可能吗?

    我有一个如下所示的课程 class Foo public Foo int x 我需要将委托传递给某个方法 如下所示 delegate Foo FooGenerator int x 是否可以直接将构造函数作为FooGenerator值 无需输
  • JavaScript getter 和 setter - 递归问题

    JavaScript 的 setter 和 getter 中的 字符有何意义 例如 我有以下代码 可以正常工作 var user get name return this name set name value this name valu
  • 具有通配符属性名称和特定属性值的 C# 和 XPath

    我可以使用 XPath 查找具有名称以特定字符集开头且属性值包含特定值的属性的所有元素吗 例如
  • 调用验证后容器不会调整自身大小

    通过手动交换组件后add and remove 我调用validate 在容器上 根据文档 validate 方法用于使容器布置它的 再次子组件 当该容器的 子组件被修改 添加到容器或从容器中删除 或者 布局相关信息已更改 容器已被 显示
  • 使用 WordApi 1.3 时 context.application 未定义

    使用 WordApi 1 3 应该可以使用新的创建文档方法 https github com OfficeDev office js docs blob WordJs 1 3 Openspec reference word applicat
  • Clojure 模型-视图-控制器 (MVC) 设计

    我正在使用 Java Swing 在 Clojure 中编写桌面 GUI 应用程序 通常 在使用 Java 时 我会根据 MVC 设计模式并使用观察者模式来设计应用程序 通过这种方式 视图与模型分离 并且两者的更改不会相互影响 从而使进一步
  • 在每种情况下使用带有值范围的 switch 语句?

    在Java中 是否可以编写一个switch语句 其中每个case包含多个值 例如 尽管显然以下代码不起作用 switch num case 1 5 System out println testing case 1 to 5 break c
  • PyCUDA/CUDA:不确定性启动失败的原因?

    任何关注 CUDA 的人可能都会看到我对我所参与的项目提出的一些疑问 但对于那些没有见过的人 我将进行总结 抱歉提前问了一个很长的问题 三个内核 一个基于一些输入变量生成数据集 处理位组合 因此可以呈指数增长 另一个解决这些生成的线性系统
  • 如何使用 Spray.io 构建 RESTful API?

    当我使用 Spray io 开发 RESTful API 时 我应该如何构建我的应用程序 我已经看到了这个答案 https stackoverflow com a 14653989 396002关于如何拆分 Spray 应用程序 但我对此不
  • 什么时候不应该使用分号?

    Or 什么不是 T SQL 语句 除了解决歧义之外 T SQL 语法不需要分号来终止语句 尽管如此 伊齐克 本 甘 http www sqlmag com blog puzzled by t sql blog 15 tsql semicol
  • 我在 VBA 中的代码使索引超出范围,但我确信数组的长度正确[重复]

    这个问题在这里已经有答案了 我需要设置val1 and val2分配给变量的数字total 无论我改变变量什么totalto 0 8 表示索引越界 我还打印了我用 MsgBox 引用的每个列表的长度 它显示为 8 我尝试将索引更改为该范围内