arrays - 将多维数组写入excel vba

标签 arrays excel vba

我正在寻求在不使用任何循环的情况下将一维数组写入 excel 电子表格。本质上,我正在尝试加快我的代码,以便我可以将价格系列转换为返回系列。

我已将价格系列复制到一个变量中,然后执行转换以返回,但我似乎无法将整个数组写回 excel。我似乎只能使用循环一个接一个地完成它。这基本上违背了试图避免多次从 excel 读取/写入的目的。我的代码如下。

理想情况下,我试图在没有实际循环的情况下完成最终循环。

For j = 1 To num_sec
    len_ror = wks_acp.Range("A:A").Offset(0,j).Cells.SpecialCells(xlCellTypeConstants).Count - 2
    last_row = max_row - len_ror + 1 
    ReDim prices(len_ror + 1) As Variant 
    ReDim rors(len_ror - 1) As Variant 

    prices = wks_acp.Range("$a$" & last_row - 1 & ":" & "$a$" & max_row).Offset(0, j).Value

For i = 0 To len_ror - 1 
    On Error GoTo errhandler
    rors(i) = (prices(i + 2, 1) / prices(i + 1, 1)) - 1

Next i

For i = 0 To len_ror - 1
wks_test.Range("$a$" & last_row + i).Offset(0, j) = rors(i)
Next i  

最佳答案

作为替代方案,您可以 ReDim rors作为二维数组并以这种方式使用它:

Sub demo()
    Dim x As Long
    x = 10
    ReDim rors(1 To x, 1 To 1)

    For i = 1 To 10
        rors(i, 1) = i
    Next i

    Range("B9:B18") = rors
End Sub

enter image description here

关于arrays - 将多维数组写入excel vba,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44836479/

相关文章:

excel - 将 1 长单列转换为 2 列以便在 excel 中打印

Excel VBA循环并以交互方式显示更改

java - 根据两列对二维数组进行排序

c - 将数组分成 2^N 然后将后续数组中的所有数字加在一起

c - 将 int 添加到多维 char 数组

excel - 如何*自动*在 Excel 中创建单个字母数字值的频率直方图?

python - 将带有数字列的 Pandas 数据框保存为 Excel 中的文本

excel - 根据用户输入在单元格中输入条件字符串

vba - 定义两个范围,然后将它们连接起来

字符数组到二进制数组不起作用