|
本帖最后由 WYS67 于 2019-6-8 11:49 编辑
1.gif (1.61 MB, 下载次数: 0)
把指定范围数字转换成3区余 1.zip (27.38 KB, 下载次数: 3)
如原公式B5=IF($A5="","",INT(($A5-F$2)*3/(F$3+1-F$2))&MOD($A5,3)),增加两个并集判断后,公式变成了:
B5=IF(OR($A5="",$A5<B$2,$A5>B$3),"",INT(($A5-B$2)*3/(B$3+1-B$2))&MOD($A5,3))
那么:代码:
Function SQUYU(rng As Range, y, x)
Dim ar, b, i
ar = rng: b = Int((x - y + 1) / 3)
If Not IsArray(ar) Then
ReDim ar(1 To 1, 1 To 1): ar(1, 1) = rng
Else: ar = rng
End If
For i = 1 To UBound(ar)
If ar(i, 1) <> "" Then
If y = 0 Then ar(i, 1) = Int(ar(i, 1) / b) & ar(i, 1) Mod 3
If y = 1 Then ar(i, 1) = Int((ar(i, 1) - 1) / b) & ar(i, 1) Mod 3
Else: ar(i, 1) = ""
End If
Next
SQUYU = ar
End Function
中的If ar(i, 1) <> "" Then 应该怎样修改,才能同时满足AND($A<>"",$A5>=F$2,$A5<=F$3)这三个条件判断?
原先的代码里只有一个判断条件:If ar(i, 1) <> "" Then,现在需要再增加两个并集判断:ar(i, 1) >=x 和 ar(i, 1) <=y 就行了!我写成:
If ar(i, 1) <> "" Then and ar(i, 1) >=x Then and ar(i, 1) <=y 却提示错误!
那么正确的写法是什么?
|
|