这应该是相当简单的。但由于某些原因,我得到的是空白单元格而不是数组中的值被传递到单元格中。
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。
答案 0 :(得分:3)
这对我有用:
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
重要的是Option 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
答案 1 :(得分:0)
我找到了一个解决方法:使用空范围使变体与范围的格式匹配,这允许我使用此格式的单个变体(因此无需更改我已设置的变体和循环)。 / p>
oSht1 = activesheet
lRow = 10
With oSht1
rFin = .Range(.Cells(lRow1 + 1, 6), .Cells(lRow1 + 2, 6))
End With
rfin(1, 1) = "Bla1"
rfin(2, 1) = "Bla2"
With oSht1
.Range(.Cells(lRow1 + 1, 6), .Cells(lRow1 + 2, 6)) = rFin
End With
不是一个优雅的解决方案,但确实有效。只需使用空的范围。
答案 2 :(得分:0)
oSht1.Cells(lRow1 + 1, 6).Resize(2) = [{"Bla1";"Bla2"}]
甚至更短
[F11:F12] = [{"Bla1";"Bla2"}]