注意: 1、本程序只接受整数。 2、本程序默认取值有效范围在0-65535。Private Sub Form_Load() Text1.Text = 重复数字提取("12,2,3,4,5,45,12,2,3") End SubFunction 重复数字提取(ByVal p字符串 As String, Optional ByVal p分隔符 As String = ",", Optional ByVal p值域_开始 As Long = 0, Optional ByVal p值域_结束 As Long = 65535) As String Dim t输出字符串 As String
Dim t输入数字_数组() As String
t输入数字_数组() = Split(p字符串, p分隔符) Dim t输入数字_数组_索引 As Long Dim t输入数字_数组_结束 As Long
t直方图(t当前数字) = t直方图(t当前数字) + (t当前数字_检测 And 1) '上面这句相当于: 'If t当前数字_检测 Then t直方图(t当前数字) = t直方图(t当前数字) + 1 Next
Dim t直方图_索引 As Long Dim t值有效 As Boolean
For t直方图_索引 = p值域_开始 To p值域_结束 t值有效 = t直方图(t直方图_索引) > 1 If t值有效 Then t输出字符串 = t输出字符串 & "," & t直方图_索引 & "(出现" & t直方图(t直方图_索引) & "次)" End If Next
重复数字提取 = t输出字符串 End Function
Private Sub Command1_Click() Dim Temp As String, N() As String, N_1() As String, i As Integer, j As Integer, k As Integer, Tstr As String Dim IsSample As Integer, IsSample1 As BooleanLabel2.Caption = "" Temp = Text1.Text N = Split(Temp, ",") '以逗号为分割标致,读取TEXT1中的字符 For i = LBound(N) To UBound(N) Tstr = N(i) IsSample = 0 'Label2.Caption = Label2.Caption & N(i) For j = LBound(N) To UBound(N) If Tstr = N(j) Then IsSample = IsSample + 1 'Exit For End If Next If IsSample > 1 Then N_1 = Split(Label2.Caption, ",") IsSample1 = False For k = LBound(N_1) To UBound(N_1) If N(i) = N_1(k) Then IsSample1 = True 'Exit For End If Next If IsSample1 = False Then Label2.Caption = Label2.Caption & "," & N(i) End If End If
1、本程序只接受整数。
2、本程序默认取值有效范围在0-65535。Private Sub Form_Load()
Text1.Text = 重复数字提取("12,2,3,4,5,45,12,2,3")
End SubFunction 重复数字提取(ByVal p字符串 As String, Optional ByVal p分隔符 As String = ",", Optional ByVal p值域_开始 As Long = 0, Optional ByVal p值域_结束 As Long = 65535) As String
Dim t输出字符串 As String
Dim t输入数字_数组() As String
t输入数字_数组() = Split(p字符串, p分隔符) Dim t输入数字_数组_索引 As Long
Dim t输入数字_数组_结束 As Long
t输入数字_数组_结束 = UBound(t输入数字_数组())
Dim t当前数字 As Long
Dim t当前数字_检测 As Long
Dim t直方图() As Long
ReDim t直方图(p值域_开始 To p值域_结束)
For t输入数字_数组_索引 = 0 To t输入数字_数组_结束
t当前数字 = CLng(t输入数字_数组(t输入数字_数组_索引))
t当前数字_检测 = IsNumeric(t当前数字)
t直方图(t当前数字) = t直方图(t当前数字) + (t当前数字_检测 And 1)
'上面这句相当于:
'If t当前数字_检测 Then t直方图(t当前数字) = t直方图(t当前数字) + 1
Next
Dim t直方图_索引 As Long
Dim t值有效 As Boolean
For t直方图_索引 = p值域_开始 To p值域_结束
t值有效 = t直方图(t直方图_索引) > 1
If t值有效 Then
t输出字符串 = t输出字符串 & "," & t直方图_索引 & "(出现" & t直方图(t直方图_索引) & "次)"
End If
Next
重复数字提取 = t输出字符串
End Function
Dim Temp As String, N() As String, N_1() As String, i As Integer, j As Integer, k As Integer, Tstr As String
Dim IsSample As Integer, IsSample1 As BooleanLabel2.Caption = ""
Temp = Text1.Text
N = Split(Temp, ",") '以逗号为分割标致,读取TEXT1中的字符
For i = LBound(N) To UBound(N)
Tstr = N(i)
IsSample = 0
'Label2.Caption = Label2.Caption & N(i)
For j = LBound(N) To UBound(N)
If Tstr = N(j) Then
IsSample = IsSample + 1
'Exit For
End If
Next
If IsSample > 1 Then
N_1 = Split(Label2.Caption, ",")
IsSample1 = False
For k = LBound(N_1) To UBound(N_1)
If N(i) = N_1(k) Then
IsSample1 = True
'Exit For
End If
Next
If IsSample1 = False Then
Label2.Caption = Label2.Caption & "," & N(i)
End If
End If