2D数组值在特定位置打印
我试图从一个特定的单元格开始,将二维数组的值放到工作表上。
例如,在单元格A1
,我键入公式=testArray2Sheet(D7)
预期的结果是该值出现在工作表上,第一个值在单元格D7
,向下跨越18行和3列。
我目前的代码只是停止执行在这一行: targetRange.Value = arr
并退出,而不会targetRange.Value = arr
警告或错误。
单元格A1
只是说#VALUE
。
我不知道为什么…
Function testArray2Sheet(firstCell As range) Dim ret As Boolean 'dummy return value Dim targetRange As range Dim lastCell As range Dim arr As Variant Dim rows, cols As Integer Dim i, j As Integer 'Determine size of array rows = 18 cols = 3 'Make sure the array has the new dimensions ReDim arr(1 To rows, 1 To cols) 'Fill the array with values For i = 1 To 18 For j = 1 To 3 arr(i, j) = i * j Next Next 'firstCell is the top-left corner of the targetRange 'Now determine the bottom-right corner of the targetRange Set lastCell = firstCell.Offset(rows, cols) 'Create the targetRange Set targetRange = range(firstCell, lastCell) 'Put the values of the array to the targetRange 'This should me the values appear in the worksheet targetRange.Value = arr 'Return a dummy value, because a function needs to return something testArray2Sheet = ret End Function
要将数组移动到工作表中,请将数组公式(UDF)放入要接收值的单元格中。 说UDF是:
Function testArray2Sheet() Dim targetRange As Range Dim arr As Variant Dim rows As Long, cols As Long Dim i As Long, J as Long rows = 18 cols = 3 'Make sure the array has the new dimensions ReDim arr(1 To rows, 1 To cols) For i = 1 To 18 For j = 1 To 3 arr(i, j) = i * j Next Next testArray2Sheet = arr End Function
首先高亮显示一个单元格块,例如单元格B5到D22 。
然后点击公式栏并input数组公式:
=testArray2Sheet()
(使用Ctrl + Shift + Enter而不是Enter键)
你应该看到:
它是input公式的单元格块,用于确定数组的目标。