|
YZC51 发表于 2019-11-8 16:46
或者
Private Sub CommandButton1_Click()
Range("c2") = Replace("" & Range("a2"), Chr(10), Chr(10) & ...
Function MUZI(a, Optional smin = "", Optional smax = "", Optional t = 0)
arr = a
s1 = smin
s2 = smax
's3 = (s1 - s2 + 1) / 3
If Not IsArray(arr) Then
ReDim brr(1 To 1, 1 To 1)
brr(1, 1) = a
arr = brr
End If
If s1 = "" Then '三余
For i = 1 To UBound(arr)
If arr(i, 1) <> "" Then
ReDim qu(2)
For j = 1 To 3
s3 = Mid(arr(i, 1), j, 1) Mod 3
qu(s3) = qu(s3) + 1
Next
mm = ""
zm = ""
For j = 0 To 2
If qu(j) = 1 Then
zm = j
ElseIf qu(j) = 2 Then
mm = j
ElseIf qu(j) = 3 Then
mm = j & j
End If
Next
If mm = "" Then arr(i, 1) = 33 Else arr(i, 1) = mm & zm
If t = 1 Then arr(i, 1) = --Left(arr(i, 1), 1)
If t = 2 Then arr(i, 1) = --Right(arr(i, 1), 1)
Else
arr(i, 1) = ""
End If
Next
Else '三区
For i = 1 To UBound(arr)
If arr(i, 1) <> "" Then
ReDim qu(2)
For j = 1 To 3
If Val(Mid(arr(i, 1), j, 1)) <= s1 Then
qu(0) = qu(0) + 1
ElseIf Val(Mid(arr(i, 1), j, 1)) <= s2 Then
qu(1) = qu(1) + 1
Else
qu(2) = qu(2) + 1
End If
Next
mm = ""
zm = ""
For j = 0 To 2
If qu(j) = 1 Then
zm = j
ElseIf qu(j) = 2 Then
mm = j
ElseIf qu(j) = 3 Then
mm = j & j
End If
Next
If mm = "" Then arr(i, 1) = 33 Else arr(i, 1) = mm & zm
If t = 1 Then arr(i, 1) = --Left(arr(i, 1), 1)
If t = 2 Then arr(i, 1) = --Right(arr(i, 1), 1)
Else
arr(i, 1) = ""
End If
Next
End If
MUZI = arr
End Function
老师,只有在第一参数 LEN(a)=3 个字符时,才会显示上面代码运算的输出结果; 如果LEN(a)<>3,则输出结果应该屏蔽为空白【即必须是三位数的数据,才能显示计算结果,否则将输出结果屏蔽为空白!】
这一句命令应该加在哪个地方最合适?
|
|