VBA如何传递一个string数组到范围

通常的问题是将范围传递给数组,但这次我需要做相反的事情。 我想传递各种大小的string数组到一个范围。 BRMichał

要设置数组范围的值,我们必须首先确定依赖于数组大小的范围的大小。 为此我们可以使用数组的边界( LBoundUBound )。

那么,如果数组符合范围,我们可以简单地做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