从范围切换到数组并返回VBA功能

nig*_*ors 4 arrays excel vba range

有很多问题,以及很多处理VBA中Range/Array转换的响应.我无法找到有效的答案,所以我真的会给予一些帮助.

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

    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
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助!

Tim*_*ams 5

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

outputRange.Resize(Ubound(inputArray,1), _
                   Ubound(inputArray,2)).Value = inputArray
Run Code Online (Sandbox Code Playgroud)

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

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

   'operations on inputArray
   '...'

   RangeToArray = inputArray
End Function
Run Code Online (Sandbox Code Playgroud)

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

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

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