- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个函数返回错误9,为什么?我已经在这里阅读了几个类似的问题,但没有什么能很好地解释我。
我真的很想理解为什么 ReDim Preserve 在这种情况下不起作用,因为从“j+1”开始没有输入(我已经检查了我的单元格),所以没有覆盖任何内容。
这是代码
Function DadosAnoIndenizações()
ReDim dados(1 To 10000, 1 To 2)
j = 0
For i = 5 To 10000
If (IsNumeric(Worksheets(2).Cells(i, 8).Value) And Not IsEmpty(Worksheets(2).Cells(i, 8).Value)) Then
Ano = CInt(Right(Worksheets(2).Cells(i, 8).Value, 4))
SD = Worksheets(2).Cells(i, 11).Value
j = j + 1
dados(j, 1) = Ano
dados(j, 2) = SD
End If
Next i
ReDim Preserve dados(1 To j, 1 To 2)
DadosAnoIndenizações = dados
End Function
最佳答案
您正在尝试更改数组的第一个维度。 Redim preserve 只能更改数组的最后一个维度,这就是您收到错误的原因。您可以在 MSDN 的网站上找到此信息:ReDim Statement (Visual Basic) ,特别是“Resizing with Preserve”部分:
Resizing with Preserve. If you use Preserve, you can resize only the last dimension of the array. For every other dimension, you must specify the bound of the existing array.
For example, if your array has only one dimension, you can resize that dimension and still preserve all the contents of the array, because you are changing the last and only dimension. However, if your array has two or more dimensions, you can change the size of only the last dimension if you use Preserve.
1 to 2
。第二个维度是您的
1 to j
然后执行
Application.Transpose
将结果写入工作表时。
关于arrays - 错误 9 使用 ReDim Preserve,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35209015/
我正在使用函数来创建数组。输入也是一个数组。运行时它给我一个 invalid ReDim 编译错误。在此之前,它在子例程中运行,ReDim 运行良好,但现在我在函数中更改了它,它给出了 invalid
这似乎是关于这个主题的第 100 万个问题,但搜索并没有帮助我。 我正在尝试调整二维数组的最后一个维度的大小,但在 ReDim Preserve 行中总是出现“索引超出范围”错误。 Dim arrCu
假设我有这样一段代码: Dim resultArray() As Double ReDim resultArray(1 to 10) As Double Dim i As Integer For i
我正在尝试重新保存二维数组。在我的代码的最顶部我有: Dim BayQuestionArray() As Variant Dim numberofbay As Double 我有两个按钮,第一个按钮用
我在 Win7 下使用 Access 2010。我发现我可以在运行时通过简单地调用 ReDim arrayName(x) 来确定我的数组的维度。无需先将数组声明为 Dim arrayName() .
我不知道如何填充多维数组。这是我刚开始理解的代码,但我不知道出了什么问题,除了一个循环之外它不起作用。 Sub test() Dim Arr1 As Variant Dim Row A
当我第一次创建数组时,我知道最好将数据类型设置为默认 Variant类型很慢,否则最好在 VBA 中避免 我注意到 Redim t(1 To 10) As String 似乎具有相同的效果 Dim t
您能否向我解释为什么这个简单的 VBA 代码在最后一行失败(“下标超出范围”): Dim test() As Variant ReDim test(0, 1) test(0,0
我正在尝试在QTP/VB脚本中重新创建数组,但我不断收到错误消息:Expected Statement。 在过去的几个小时中,我已经遍历了一百次代码,而我只是没有看到丢失的内容,而且这里的办公室似乎没
我在 Excel 宏 (VBA) 中有一个情况,我想对一个数组进行维度标注,其中维度数和每个维度的边界在运行时确定。我让用户通过为每个选项类型创建一列并填写下面的可能性来指定一系列组合选项。列数和选项
我正在看别人的vba excel代码。他们在两个循环中都执行 ReDim Preserve dataMatrix(7, i) 。这是做什么的? 另外,第二个循环似乎只是覆盖了第一个循环中的数据,对吗?
我在 VBA (Excel 365) 中有一个二维数组。 它给了我一条错误消息Subscript out of Range 代码停在 ReDim 行。 ReDim arrs(1 To 1, 1 to
我需要从处理 .txt 期间生成的变量值填充数组文件。然而,上限取决于输入线。我怎样才能使以下事情起作用? Dim myArr As Variant ReDim Preserve myArr(1)
我正在尝试将名称及其值插入二维数组: ____________ | name| value| index 0 |name1|value1| index 1 |name2|value2| index
问题:我有以下两个函数,transposeArray3D 和 ReDimPreserve3D 应该可以有效地 ReDim 在所有维度上保留 3D 数组。但是,即使我尝试在转置函数中重新设置值,这也会删
我正在使用这个有效的代码,但我在数组末尾得到了很多空行:ary有没有办法调整大小ary循环内的数组以避免条件不满足的额外空行? Dim myTable As ListObject Dim myArra
我正在尝试将一些旧的 VBScript 重写为 ASP.NET 应用程序的 Javascript,其中有一行我不知道如何翻译,而且我什至不完全肯定它在做什么。 该应用程序本质上允许用户输入新的员工编号
如果您想重置 bool 值数组,哪个更快,重新调整数组或枚举并重置值? 我已经运行了一些测试,他们似乎表明 redim 速度要快得多,但我不相信这不是我运行测试的结果。 我的测试似乎表明 redim
我正在尝试将数据从 2 个 double 组移动到 2 个不同的 double 组。我不确定大小是多少,因为我正在从第一个数组中随机抽取样本并将其放入第二个数组中。 当我添加 ReDim Preser
通过在全新工作簿的 IDE 中输入以下内容,我能够以某种方式使 Excel 2010 崩溃: private sub foo redim v(,1 to 3) 好吧,你不太可能输入这个...但
我是一名优秀的程序员,十分优秀!