Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA:将值从数组传递到范围_Vba_Excel - Fatal编程技术网

VBA:将值从数组传递到范围

VBA:将值从数组传递到范围,vba,excel,Vba,Excel,这应该相当简单。但由于某种原因,我得到的是空白单元格,而不是数组中传递到单元格中的值 redim rFin (2,1) rfin (1,1) = "Bla1" rfin (2,1) = "Bla2" oSht1 = activesheet lRow = 10 With oSht1 .Range(.Cells(lRow1 + 1, 6), .Cells(lRow1 + 2, 6)) = rFin End With 编辑:还尝试使用从0到1而不是1到2的值的rFin。这对我很有用: O

这应该相当简单。但由于某种原因,我得到的是空白单元格,而不是数组中传递到单元格中的值

redim rFin (2,1)
rfin (1,1) = "Bla1"
rfin (2,1) = "Bla2"

oSht1 = activesheet
lRow = 10

With oSht1
    .Range(.Cells(lRow1 + 1, 6), .Cells(lRow1 + 2, 6)) = rFin
End With
编辑:还尝试使用从0到1而不是1到2的值的rFin。

这对我很有用:

Option Base 1

Sub Main()
    ReDim rfin(2, 1)
    rfin(1, 1) = "Bla1"
    rfin(2, 1) = "Bla2"

    Set oSht1 = ActiveSheet
    lRow = 10

    With oSht1
        .Range(.Cells(lRow + 1, 6), .Cells(lRow + 2, 6)) = rfin
    End With
End Sub
重要的是
选项Base 1
,因为没有它,数组从0开始。或者这会起作用:

'default of Option Base 0

Sub Main()
    ReDim rfin(2, 1)
    rfin(0, 0) = "Bla1"
    rfin(1, 0) = "Bla2"

    Set oSht1 = ActiveSheet
    lRow = 10

    With oSht1
        .Range(.Cells(lRow + 1, 6), .Cells(lRow + 2, 6)) = rfin
    End With
End Sub
这对我很有用:

Option Base 1

Sub Main()
    ReDim rfin(2, 1)
    rfin(1, 1) = "Bla1"
    rfin(2, 1) = "Bla2"

    Set oSht1 = ActiveSheet
    lRow = 10

    With oSht1
        .Range(.Cells(lRow + 1, 6), .Cells(lRow + 2, 6)) = rfin
    End With
End Sub
重要的是
选项Base 1
,因为没有它,数组从0开始。或者这会起作用:

'default of Option Base 0

Sub Main()
    ReDim rfin(2, 1)
    rfin(0, 0) = "Bla1"
    rfin(1, 0) = "Bla2"

    Set oSht1 = ActiveSheet
    lRow = 10

    With oSht1
        .Range(.Cells(lRow + 1, 6), .Cells(lRow + 2, 6)) = rfin
    End With
End Sub

我找到了一个解决方法:使用一个空范围使变量与范围的格式匹配,这允许我使用此格式的单个变量(因此不必更改我已经设置的变量和循环)


这不是一个优雅的解决方案,但确实有效。只需使用空范围。

我找到了一个解决方法:使用空范围使变量与范围的格式匹配,这允许我使用此格式的单个变量(因此不必更改我已设置的变量和循环)

oSht1.Cells(lRow1 + 1, 6).Resize(2) = [{"Bla1";"Bla2"}]
这不是一个优雅的解决方案,但确实有效。只需使用一个空范围

oSht1.Cells(lRow1 + 1, 6).Resize(2) = [{"Bla1";"Bla2"}]
甚至更短

[F11:F12] = [{"Bla1";"Bla2"}]
甚至更短

[F11:F12] = [{"Bla1";"Bla2"}]

哦我不知道!我刚找到一个解决办法。我将把它作为一个答案发布(尽管我的解决方案没有你更有效的解决方案那么优雅)顺便说一句,你知道base 1是否可以与单个变体一起使用吗?(而不是通过subs影响所有变体。)好吧,idk,使用redim rFin(1到2,1)对我不起作用(我最终得到的是空白单元格)。我的变通方法(使用空范围使变量与范围的格式匹配)允许我使用此格式的单个变量(因此不必更改我已设置的变量和循环)。哦。。。我不知道!我刚找到一个解决办法。我将把它作为一个答案发布(尽管我的解决方案没有你更有效的解决方案那么优雅)顺便说一句,你知道base 1是否可以与单个变体一起使用吗?(而不是通过subs影响所有变体。)好吧,idk,使用redim rFin(1到2,1)对我不起作用(我最终得到的是空白单元格)。我的变通方法(使用空范围使变量与范围的格式匹配)允许我使用此格式的单个变量(因此不必更改已设置的变量和循环)。这是一个很好的解决方案,可以避免担心数组的基。这是一个很好的解决方案,可以避免担心数组的基。
ReDim-rFin(1到2,1到1)
ReDim-rFin(1到2,1到1)