我正在尝试编写VBA的偏移函数的改变变体,当一个单元偏移量通常落在指定范围之外时,取而代之的是超出该范围的单元数量。从范围的开始再次“包裹”它们。
我已经在网上搜索了一个人,他写了一个例子,如果它是用VBA代码写的那么.Offset函数会是什么样子,但是没有人这样做过。
有人会介意在.Offset函数在VBA代码中看起来像什么?
顺便提一下,我所做的改动类型是这样的:
Public Function MobOffset(off As Integer, REGCOL As Integer)
'The code below is to be used with Range(Cells.Rows(18), Cells.Rows(29))
Rem insert .offset code here:
If off > 29 Then
res = off - 29
off = res - 1 + 18
End If
If off < 18 Then
res = 18 Mod off
res2 = res - 1
off = 29 - res2
End If
End Function
答案 0 :(得分:0)
通用公式
count = upper - lower + 1
index = (index - lower) % count + lower
所以(Mod需要调整负数):
off = (off - 18) Mod 12 + 18
If off < 18 Then off = off + 12