4

有很多问题,也有很多关于 VBA 中范围/数组转换的回复。我一直无法找到有效的答案,所以我真的很感激一些帮助。

以下是我正在尝试做的事情:

    Function RangeToArrayToRange(inputRange As Range) As Range
        Dim inputArray As Variant
        inputArray = inputRange
        'operations on inputArray'
        '...'
        Dim outputRange As Range
        outputRange = inputArray
        Set RangeToArrayToRange = outputRange
    End Function

在此先感谢您的帮助!

4

1 回答 1

6

如果 outputRange 是要填充的范围的左上角单元格:

outputRange.Resize(Ubound(inputArray,1), _
                   Ubound(inputArray,2)).Value = inputArray

编辑:我认为这就是你想要做的

Function RangeToArray(inputRange As Range) As Variant
   Dim inputArray As Variant
   inputArray = inputRange.Value

   'operations on inputArray
   '...'

   RangeToArray = inputArray
End Function

您可以在工作表上将其用作用户定义函数 (UDF)

  1. 选择与“inputRange”尺寸相同的范围(相同的行数/列数)
  2. 在公式栏中输入“=RangeToArray([yourinputrange])”,然后按 Ctrl+Shift+Enter 将公式输入为“数组公式”

这假设您没有更改函数中的维度(上限/下限)inputArray

于 2012-06-27T22:17:34.533 回答