从另一个范围VBA的Offset返回一个范围

如何从包含另一个范围的偏移的函数返回一个范围?

这是我的代码(function):

Private Function ProcessRange(rng) As Range If rng <> "A1" Then ProcessRange = Range(rng).Offset(r + 2) //this is the problem Else ProcessRange = Range("A1") End If End Function 

从上面的例子中,我试图从偏移量函数中取代范围。 可能吗?

这里有几个问题:

  • 您应该定义参数的types
  • 使用Set来设置返回范围
  • 你没有定义什么是r
  • Offset需要两个参数,行和列
  • 由于您没有指定工作表,您的function将在活动工作表上返回一个范围

 Private Function ProcessRange(rng As String) As Range If rng <> "A1" Then Set ProcessRange = Range(rng).Offset(2, 0) ' To Offset by 2 rows Else Set ProcessRange = Range("A1") End If End Function