Split cell value and add to array
One way to do this..Right click the sheet tabview code and paste the below
code.
The applicable range is given as A1:A20.
1;5;5;2 will be converted to 1;2;5
Try and feedback
Private Sub Worksheet_Change(ByVal Target As Range)
Dim intTemp, intTemp1 As Integer, intTemp2 As Integer
Dim strData As String, arrData As Variant
If Not Application.Intersect(Target, Range("A1:A20")) Is Nothing Then
If Target.Count = 1 Then
strData = Target.Text
arrData = Split(strData, ";")
For intTemp1 = 0 To UBound(arrData)
For intTemp2 = intTemp1 To UBound(arrData)
If arrData(intTemp2) < arrData(intTemp1) Then
intTemp = arrData(intTemp2)
arrData(intTemp2) = arrData(intTemp1)
arrData(intTemp1) = intTemp
End If
Next
Next
intTemp = 0: strData = ""
For intTemp1 = 0 To UBound(arrData)
If arrData(intTemp1) < intTemp Then
strData = strData & ";" & arrData(intTemp1)
intTemp = arrData(intTemp1)
End If
Next
Application.EnableEvents = False
Cells(Target.Row, Target.Column) = Mid(strData, 2)
Application.EnableEvents = True
End If
End If
End Sub
If this post helps click Yes
---------------
Jacob Skaria
"Makelei" wrote:
Hi,
I am using 2003 and XP.
In active cell I need to do the following in Worksheet_Change(ByVal Target
As Range).
As person gives values it can be following:
"Value1; Value2; Value3; Value2; Value4; Value2; Value5"
I want to modify given value to format:
"Value1; Value2; Value3; Value4; Value5"
Values are delimited with ";" and amount varies. It means that all given
values can be listed ONLY once. I imagine that this would be best to do with
array. That is a part that I really should study more - any suggestion for
good source?
Thanks in advance
MakeLei
|