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

时间:2014-09-29 06:19:11

标签: vb.net excel vba basic

如何从包含偏移量的函数返回范围?

这是我的代码(功能):

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

从上面的例子中,我试图用偏移函数替换范围。有可能吗?

1 个答案:

答案 0 :(得分:1)

这里有几个问题:

  • 您应该定义参数的类型
  • 使用Set设置返回范围
  • 您没有定义r是什么
  • Offset需要两个参数,行和列
  • 因为您没有指定工作表,所以您的函数将返回活动工作表上的范围

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