从切换范围在VBA函数数组和返回(Switching from Range to Array and

2019-09-18 16:08发布

有很多的问题,很多的处理在VBA范围/阵列转换的响应。 我一直没能找到问题的解答,所以我真的apreciate一些帮助。

下面是我想要做的事:

    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

在此先感谢您的帮助!

Answer 1:

如果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在你的函数。



文章来源: Switching from Range to Array and Back in a VBA Function