我想在Excel中创建一个函数UDF,预计它将具有长度为2或4个字符的值。当它是两个字符时,它返回相同的值。如果是4,它应该随机选择左边的2个或者右边的2个。
问题是,当我想使用公式RandBetween它不识别它(错误:Sub或Function未定义),但是我能够在Sub上使用它而没有任何问题。Function SCountry(A As String)
If Len(A) = 2 Then
SCountry = A
ElseIf Len(A) = 4 Then
SCountry = Choose(RandBetween(1, 2), Left(A, 2), Right(A, 2)) Or Choose(1, Left(A, 2), Right(A, 2))
Else
SCountry = "Error"
End If
End Function
有什么问题吗?我尝试了所有方法,并做了广泛的搜索,但仍然不确定如何克服这个问题。一个普通的公式不是一个解决方案,因为它太大,太复杂,而且容易改变。
随机UDF
Option Explicit
Function SCountry(ByVal S As String) As String
Select Case Len(S)
Case 2
SCountry = S
Case 4
SCountry = IIf(Application.RandBetween(-1, 0), _
Left(S, 2), Right(S, 2))
Case Else
SCountry = "Error"
End Select
End Function