相关疑难解决方法(0)

VBA数组切片(不是Pythonic意义)

我该如何实现这个功能?

Public Function ArraySlice(arr As Variant, dimension as Long, index as Long) As Variant

    'Implementation here

End Function
Run Code Online (Sandbox Code Playgroud)

假设我想要一个数组切片.我在该维度上指定了一个数组,一个维度和一个索引,我想要切片.

举一个具体的例子,假设我有以下5x4 2D数组

   0  1  2  3  4
  ______________
0| 1  1  2  3  1
1| 3  4  2  1  5
2| 4  5  3  2  6
3| 3  5  2  1  3
Run Code Online (Sandbox Code Playgroud)

如果水平尺寸为1且垂直尺寸为2,则返回值ArraySlice(array, 1, 3)将为1x4 2D阵列.选定的维度2被展平,唯一剩下的值是最初在维度2的索引3处的值:

   0
  ____
0| 3
1| 1
2| 2
3| 1
Run Code Online (Sandbox Code Playgroud)

你会如何在VBA中实现这一点?我能想到的唯一实现将涉及CopyMemory,除非我限制了允许的维度数量并对每种情况进行硬编码.

注意:这是我如何获得数组的尺寸

UPDATE

以下是一些操作示例

对于2D阵列

   0  1  2  3  4
  ______________
0| …
Run Code Online (Sandbox Code Playgroud)

arrays vba

8
推荐指数
1
解决办法
547
查看次数

标签 统计

arrays ×1

vba ×1