gpt4 book ai didi

arrays - 动态维度/填充二维数组

转载 作者:行者123 更新时间:2023-12-04 21:00:47 24 4
gpt4 key购买 nike

我有一个有趣的问题。我需要用数据填充二维数组,但在填充数组之前我不知道有多少数据点。

Dim finalArray(0 to 500000, 0 to 3)
R=0

For Each index in someDictionary
If Not someDictionary.item(index)(1) = 0
finalArray(R,0) = someDictionary.item(index)(1)
finalArray(R,1) = someDictionary.item(index)(2)
finalArray(R,2) = someDictionary.item(index)(3)
R = R + 1
End If
Next index

问题是我不知道字典中有多少项,也不知道有多少项是非零的。我知道的唯一方法是在我运行循环并计数 R 之后。

目前我正在将整个 500k 行数组打印到 Excel,这通常是 100-400k 行数据,其余为空白。这很笨拙,我想将数组重新调整为正确的大小。我无法使用 ReDim因为无法删除数据,也无法使用 ReDim Preserve因为它是二维的,我需要减少行,而不是列。

最佳答案

这个怎么样?

Sub Sample()
Dim finalArray()
Dim R As Long

For Each Index In someDictionary
If Not someDictionary.Item(Index)(1) = 0 Then R = R + 1
Next Index

ReDim finalArray(0 To R, 0 To 3)

R = 0

For Each Index In someDictionary
If Not someDictionary.Item(Index)(1) = 0 Then
finalArray(R, 0) = someDictionary.Item(Index)(1)
finalArray(R, 1) = someDictionary.Item(Index)(2)
finalArray(R, 2) = someDictionary.Item(Index)(3)
R = R + 1
End If
Next Index
End Sub

关于arrays - 动态维度/填充二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36652374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com