ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Insert into presorted list (https://www.excelbanter.com/excel-programming/455043-insert-into-presorted-list.html)

Tatsujin

Insert into presorted list
 
I have these variables:

sSorted = "ant, dog, giraffe, rhino, wolf, zebra"
sMixed = "pig, snake, coyote"

I want to build this newly sorted list:

aSort2 = "ant, coyote, dog, giraffe, pig, rhino, snake, wolf, zebra"

What would be some quick ways to merge both lists in a sorted manner?

Thanks!

Claus Busch

Insert into presorted list
 
Hi,

Am Mon, 1 Feb 2021 12:20:14 -0800 (PST) schrieb Tatsujin:

I have these variables:

sSorted = "ant, dog, giraffe, rhino, wolf, zebra"
sMixed = "pig, snake, coyote"

I want to build this newly sorted list:

aSort2 = "ant, coyote, dog, giraffe, pig, rhino, snake, wolf, zebra"


try:

Sub SortedList()
Dim sSorted As String, sMixed As String, myStr As String, varbuffer As String
Dim vardata As Variant
Dim i As Integer, k As Integer, lngUp As Integer, lngLow As Integer

sSorted = "ant, dog, giraffe, rhino, wolf, zebra"
sMixed = "pig, snake, coyote"
myStr = sSorted & ", " & sMixed
vardata = Split(myStr, ", ")

lngUp = UBound(vardata)
lngLow = LBound(vardata)

For i = lngLow To lngUp - 1
For k = lngUp To i + 1 Step -1
If vardata(i) vardata(k) Then
varbuffer = vardata(k)
vardata(k) = vardata(i)
vardata(i) = varbuffer
End If
Next
Next
myStr = Join(vardata, ", ")
Range("A1") = myStr
End Sub


Regards
Claus B.
--
Windows10
Microsoft 365 for business

Tatsujin

Insert into presorted list
 
On Monday, February 1, 2021 at 2:48:26 PM UTC-7, Claus Busch wrote:

Sub SortedList()
Dim sSorted As String, sMixed As String, myStr As String, varbuffer As String
Dim vardata As Variant
Dim i As Integer, k As Integer, lngUp As Integer, lngLow As Integer
sSorted = "ant, dog, giraffe, rhino, wolf, zebra"
sMixed = "pig, snake, coyote"
myStr = sSorted & ", " & sMixed
vardata = Split(myStr, ", ")

lngUp = UBound(vardata)
lngLow = LBound(vardata)

For i = lngLow To lngUp - 1
For k = lngUp To i + 1 Step -1
If vardata(i) vardata(k) Then
varbuffer = vardata(k)
vardata(k) = vardata(i)
vardata(i) = varbuffer
End If
Next
Next
myStr = Join(vardata, ", ")
Range("A1") = myStr
End Sub


Good stuff yet again! Thank you very much.


All times are GMT +1. The time now is 06:23 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com