arrays - For-Next 循环和数组 - VBA

标签 arrays vba excel for-loop

我一直犯同样的错误,我不知道它是什么。每次我做一个处理数组的 For-Loop 时(通常,尝试读取一个数组并将值写入第二个数组),它只从第一个数组中获取最后一个值并将其写入第二个数组的每个插槽中大批。

这是我正在研究的最简单/最短的副本。它应该从 A1:A10 中读取值并将它们写入 B1:K1。

Sub Problem1()
    Dim a(1 To 10) As Single
    Dim b(1, 10) As Single
    Dim i As Integer



    For i = 1 To 10
        a(i) = Range("A" + CStr(i)).Value
    Next i

    For i = 1 To 10
        b(1, i) = a(i)
    Next i

    Range("B1:K1") = b(1, 10)

End Sub

最佳答案

Range("B1:K1") = b(1, 10)

这只会复制一个数组元素。

您可以执行以下操作:
Range("B1:K1").Value = Application.WorksheetFunction _
    .Transpose(Range("A1:A10"))

不幸的是,要将原始值存储在数组中(使用我的方法)需要将其声明为 Variant:
Sub Problem1()
    Dim a As Variant

    a = Range("A1:A10")

    Range("B1:K1") = Application.WorksheetFunction.Transpose(a)
End Sub

如果您仍想同时使用这两个数组:
Sub Problem1()
    Dim a As Variant
    Dim b(1 To 10) As Single
    Dim i As Integer

    a = Range("A1:A10")
    For i = 1 To 10
        b(i) = a(i, 1)
    Next i
    Range("B1:K1") = b
End Sub

关于arrays - For-Next 循环和数组 - VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17256563/

相关文章:

html - 确定浏览器将下载文件、excel 和 VBA 的位置

java - 从 Excel 导入空日期

arrays - 如何为可变大小的数组创建固定的结构头

c++ - 返回指向常量二维数组的指针的函数 (C++)

javascript - 如何同时映射3个或更多数组

excel - 如何将数据粘贴到第一个空行的列中?

vba - 以编程方式将 PowerPoint 幻灯片的内容提取为类似 MS Word 的格式?

javascript - Linq JS 连接语法

excel - 编辑 .ppam 文件以自定义加载项

vba - 运行时错误 91 对象变量或未设置变量