通常的问题是将范围传递给数组,但这次我需要做相反的事情。我想将各种大小的字符串数组传递给一个范围。 BRMichał
答案 0 :(得分:1)
要从数组设置范围的值,我们必须首先确定该范围的大小,这取决于数组大小。为此,我们可以使用数组的边界(LBound
和UBound
)。
然后,如果数组符合范围,我们可以简单地执行range.value = arr
。
示例:
Sub test()
Cells.ClearContents
' one dimensional array; base 0
aSArr = Array("This", "is", "an", "array", "of", "strings")
Set r1 = Range("C3").Resize(1, 1 + UBound(aSArr))
r1.Value = aSArr
Set r2 = Range("C5").Resize(1 + UBound(aSArr), 1)
r2.Value = Application.Transpose(aSArr)
' two dimensional array; base 1
aSArr = [{"This", "is", "an"; "array", "of", "strings"}]
Set r3 = Range("E6").Resize(UBound(aSArr, 1), UBound(aSArr, 2))
r3.Value = aSArr
End Sub