【发布时间】:2021-06-01 21:09:28
【问题描述】:
我有几个命名范围(timelinemarket、clientdetailsmarket、presencemonthlymarket、cashinflowmarket、cashoutflowmarket),我正在逐个循环并使用 .value 转移到新工作表。这需要大量代码,因为我正在逐个循环并执行 .value 操作。所有范围都(或被设计为)相同的高度(目前为 72 行)。
我想要的是将范围内的所有值添加到一个看起来像这样的数组中:
| range 1 col 1 | range 1 col 2 | range 2 col 1 | range 3 col 1 | range 4 col 1 |
|---|---|---|---|---|
| value | value | value | value | value |
| value | value | value | value | value |
| value | value | value | value | value |
| value | value | value | value | value |
然后我想把那个数组粘贴到位置 x 的新工作表中。
我的理解是我可以一个接一个地遍历范围,将值添加到数组中,然后使用类似下面的内容将它们放入新的工作表中:
range("newrange") = myarray
要处理的范围都将是相同的高度,72 行,但它们具有不同的列数。
- 范围 1:72 行 x 2 列
- 范围 2:72 行 x 1 列
- 范围 3:72 行 x 1 列
- 范围 4:72 行 x 1 列
结果数组:72 行 x 5 列
【问题讨论】:
-
你明白什么是数组,没有冒犯吗?请编辑您的问题并尝试用文字解释您尝试完成的工作。试图理解你的代码看起来已经够难了。
-
有点……我已经阅读了多个教程,我想我明白了,但后来我尝试实际使用它们,但它的行为并不符合我的预期。我已经编辑了我的问题,希望更清楚......
-
您不应该删除所有代码。也许其他更有耐心的人会更好地理解它的含义......现在,为了提供更多相关性,我认为您应该向我们展示您要处理的数据的外观。我知道以多种方式处理数组并且我喜欢提供帮助,但是如果没有看到输入,实际上不可能向您展示应该如何创建这样的输出......
-
我认为你是对的,代码实际上并没有为问题添加任何内容。我只需要知道如何将范围的值添加到数组中......如果这实际上是实现我想要的结果的好方法!并感谢您花时间回答,非常感谢。
-
最简单的方法是使用范围
Value属性。例如arr = Range("A1:B4").value将范围放入具有两列和四行的数组中。是不是清楚一点?你可以测试一下。然后,使用“Debug.Print arr(2, 2)”。它将返回以前的范围“B2”值...