|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 WYS67 于 2019-6-16 09:28 编辑
下面的代码是以3为基数进行区余计算的,如果把里面红色标记的“3 ”扩展为第四参数n【第四参数n可省略,省略后默认为3】,
Function SQUYU(rng As Range, a, b)
Dim ar, i: ar = rng
If Not IsArray(ar) Then ReDim ar(1 To 1, 1 To 1): ar(1, 1) = rng Else ar = rng
For i = 1 To UBound(ar)
If ar(i, 1) <> "" Then If CLng(ar(i, 1)) > CLng(a) - 1 And CLng(ar(i, 1)) < CLng(b) + 1 Then _
ar(i, 1) = Int((CLng(ar(i, 1)) - CLng(a)) * 3 / (CLng(b) + 1 - CLng(a))) & CLng(ar(i, 1)) Mod 3 Else ar(i, 1) = ""
Next
SQUYU = ar
End Function
则上面的代码变成了:
Function SQUYU(rng As Range, a, b, n)
Dim ar, i: ar = rng
If Not IsArray(ar) Then ReDim ar(1 To 1, 1 To 1): ar(1, 1) = rng Else ar = rng
For i = 1 To UBound(ar)
If ar(i, 1) <> "" Then If CLng(ar(i, 1)) > CLng(a) - 1 And CLng(ar(i, 1)) < CLng(b) + 1 Then _
ar(i, 1) = Int((CLng(ar(i, 1)) - CLng(a)) * n / (CLng(b) + 1 - CLng(a))) & CLng(ar(i, 1)) Mod n Else ar(i, 1) = ""
Next
SQUYU = ar
End Function
如此,就可以进行多种计算!但 “第四参数n可省略,省略后默认为3”,这一句的代码应该怎样编写?编写后放在哪一句后面?
|
|