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

在VBA中有很多问题和很多处理Range / Array转换的问题。 我一直没有find一个可行的答案,所以我真的会赞赏一些帮助。

以下是我想要做的:

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 

在此先感谢您的帮助!

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

 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. select与“inputRange”尺寸相同的范围(相同的行数/列数)
  2. 在公式栏中input“= RangeToArray([yourinputrange])”,然后按Ctrl + Shift + Enter将公式input为“数组公式”

这假设你没有改变函数中inputArray的维数(上/下限)。