Arrays 如何在数组中返回多个值-Excel VBA

Arrays 如何在数组中返回多个值-Excel VBA,arrays,excel,vba,variant,Arrays,Excel,Vba,Variant,我试图返回存储在数组中的多个值。我不确定如何描述它,但我想做的是输出值,如A1中的0,B1中的37.2,C1中的5.51,D1中的0.498,A2中的4.17,B2中的36.7,等等 我现在的代码是 For j = 1 to nw For k = 1 to 4 tWB.Sheets("Data").Cells(j, k) = A(j) Next k Next j 这是我第一次发布,所以我不确定发布etique,所以如果需要更多信息,我可以尝试提供它 这是完整的代码

我试图返回存储在数组中的多个值。我不确定如何描述它,但我想做的是输出值,如A1中的0,B1中的37.2,C1中的5.51,D1中的0.498,A2中的4.17,B2中的36.7,等等

我现在的代码是

For j = 1 to nw
    For k = 1 to 4
       tWB.Sheets("Data").Cells(j, k) = A(j)
    Next k
Next j
这是我第一次发布,所以我不确定发布etique,所以如果需要更多信息,我可以尝试提供它

这是完整的代码

    Option Explicit
    Option Base 1
    Sub DataMerge()
    Dim FileNames As Variant, A() As Variant
    Dim i As Integer, nw As Integer, j As Integer, k As Integer
    Dim UserRange As Range, ImportRange As String
    Dim tWB As Workbook, aWB As Workbook
    Set tWB = ThisWorkbook
    FileNames = Application.GetOpenFilename(FileFilter:="Excel Filter(*.csv),*.csv", Title:="Open File(s)", MultiSelect:=True)
    Workbooks.Open FileNames(1)
    Set UserRange = Application.InputBox(Prompt:="Select Range: ", Title:="Import Range", Type:=8)
    ImportRange = UserRange.Address
    nw = UBound(FileNames)
    ReDim A(nw) As Variant
    For i = 1 To nw
        Workbooks.Open FileNames(i)
        Set aWB = ActiveWorkbook
        A(i) = aWB.Sheets(1).Range(ImportRange)
        aWB.Close SaveChanges:=False
    Next i

    tWB.Activate
    For j = 1 to nw
        For k = 1 to 4
           tWB.Sheets("Data").Cells(j, k) = A(j)
        Next k
    Next j
   End Sub

你的代码非常接近。相反:

For j = 1 to nw
    For k = 1 to 4
       tWB.Sheets("Data").Cells(j, k) = A(j)(k,1)
    Next k
Next j

您有一个由二维数组组成的一维数组。如何加载数组?请将代码添加到问题中。用户是否总是选择一行连续的单元格?如果您看图片,a是数组数组。因此
A(j,k)
将给出一个错误,因为A中没有第二维度。你想
=A(j)(k,1)
哦,淘气@Scott I将删除第二个选项并更新第一个选项。对于第二个选项,保留在外循环中:
tWB.Sheets(“数据”).Range(“A”&j)。Resize(1,4)。Value=Application.Transpose(A(j))