vba一维数组赋值(vba 单元格赋值问题 定义了一个400万个元素的一维数组,如何能够快速赋值给单元格,是否可以)
本文目录
vba 单元格赋值问题 定义了一个400万个元素的一维数组,如何能够快速赋值给单元格,是否可以
没试过这么多的。一维数组的话excel单张表装不下这么多,建议弄成二维数组,例如 10列*40万行。.resize(ubound(arr,1),ubound(arr,2))=arr不管数组多大,只要单张表能装下,上面这一句就把数组装进工作表的单元格里了,速度很快,秒好。
vba 一维数组一次性赋值给单元格
用这个:range("a1:a10")=Application.Transpose(arr)
VBA求一维数组的穷举法
以下是一个使用递归方式生成所有可能组合的VBA代码。该代码将输出myArr中所有长度为1到20的组合。请注意,当数组很大时,这种穷举方法会非常耗时。
Sub GenerateCombinations()
Dim myArr(1 To 20) As Integer
Dim i As Integer
’填充数组myArr,这里使用示例数据
For i = 1 To 20
myArr(i) = i
Next i
’循环输出所有长度为1到20的组合
For i = 1 To 20
Debug.Print "长度为 " & i & " 的组合:"
GenerateCombinationsHelper myArr, i, ""
Next i
End Sub
Sub GenerateCombinationsHelper(myArr As Variant, k As Integer, result As String)
Dim i As Integer
Dim j As Integer
If k = 0 Then
Debug.Print result
Else
For i = 1 To UBound(myArr)
If InStr(result, CStr(myArr(i))) = 0 Then
GenerateCombinationsHelper myArr, k - 1, result & " " & myArr(i)
End If
Next i
End If
End Sub
运行代码
代码首先填充数组myArr,然后循环输出所有长度为1到20的组合。对于每个长度,代码调用GenerateCombinationsHelper函数来生成所有可能的组合。GenerateCombinationsHelper函数使用递归方式生成组合。它首先检查是否已经选择了k个元素,如果是,则输出结果;否则,它将递归调用自己,选择一个尚未被选择的元素,将其添加到结果中,然后继续选择下一个元素。当选择的元素数量达到k时,递归终止。生成的组合通过result参数传递,并使用Debug.Print输出。
vba数组一维数组怎么赋值给二维数组
一维给二维赋值,参考实例如下:for (i = 0; i 《 10; i++){ for (j = 0; j 《 max; j++) { scanf("%d", &a); } strncpy(b, a, max); //memcpy(b, a, max);}二维数组赋值有两种方法,第一种方法是单元格区域装入二维数组,如:Arr=range("a1:b19")就可以把单元格区域的值装入数组arr第二种就是通过循环装入,一个个数值装入。例:向二维数组写入数据和读取;Dim x As Integer, y As IntegerDim arr(1 To 5, 1 To 4)For x = 1 To 5