我试图创建一个函数,它返回一个由作为参数传递给它的范围的每个第n个单元组成的范围。从每个第n个单元创建一个范围
Function OFFSETRANGE(AREA As Range, Optional STEP As Integer = 1) As Range
Dim Counter As Integer
Dim TempRange As Range
For Each rCell In AREA.Cells
If Counter Mod Counter = 0 Then
MsgBox ("In loop" & Counter & " " & rCell)
TempRange = Application.Union(TempRange, rCell)
End If
Next
OFFSETRANGE = TempRange
End Function
无论何时我尝试使用该函数,我都会收到#VALUE错误。我在做什么错
你有没有在你的代码什么'Counter'的价值是什么地方申报的吗?我还会''Debug.Print'' Area.Cells'中的每个单元格来查看并确保其中每个单元格都有一个数据。 – hod
你不能在一个空的范围内使用Union(一个是Nothing),并且你没有递增'Counter'。通过从VBA中的Sub而不是从工作表调用它来调试你的函数。 –
你是如何使用这个功能的? – jsotola