aspava
Altın Üye
- Katılım
- 24 Nisan 2006
- Mesajlar
- 243
- Excel Vers. ve Dili
- Excel Vers. ve Dili Ofis 2016 TR 32 Bit
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Verdiğiniz dosyada Liste2 nin ilk satırı turuncu ve boş olarak görünüyor.
Bunu siz mi eklediniz?
Yoksa Aslında o liste de 2 satırdan oluşuyor ancak Liste1 deki ilk sicil liste2 de olmadığı için araya satır açıp olmayan sicili buraya biz mi yazacağız
Sub Yeni()
Dim Say As Integer, myArr(), myList1 As Object, myList2 As Object, i As Integer
Say = Range("A" & Rows.Count).End(xlUp).Row
myArr = Range("A6:B" & Say)
Set myList1 = CreateObject("System.Collections.ArrayList")
Set myList2 = CreateObject("System.Collections.ArrayList")
For i = 1 To UBound(myArr)
If Not myList1.Contains(myArr(i, 1)) And myArr(i, 1) <> "" Then myList1.Add myArr(i, 1): myList2.Add myArr(i, 2)
Next
Say = Range("D" & Rows.Count).End(xlUp).Row
myArr = Range("D6:E" & Say)
For i = 1 To UBound(myArr)
If Not myList1.Contains(myArr(i, 1)) And myArr(i, 1) <> "" Then myList1.Add myArr(i, 1): myList2.Add myArr(i, 2)
Next
Range("A6").Resize(myList1.Count, 1) = WorksheetFunction.Transpose(myList1.toArray)
Range("B6").Resize(myList1.Count, 1) = WorksheetFunction.Transpose(myList2.toArray)
Range("D6").Resize(myList1.Count, 1) = WorksheetFunction.Transpose(myList1.toArray)
Range("E6").Resize(myList1.Count, 1) = WorksheetFunction.Transpose(myList2.toArray)
Set myList1 = Nothing: Set myList2 = Nothing
End Sub
Hücre ya da satır eklemeden çözdüm ama umarım sakıncası yoktur.
Birde benim sorum olsun arada, konuyu iki kolonlu tek ArrayListte çözemedim. Mümkün müdür? @Korhan Ayhan @Haluk
C++:Sub Yeni() Dim Say As Integer, myArr(), myList1 As Object, myList2 As Object, i As Integer Say = Range("A" & Rows.Count).End(xlUp).Row myArr = Range("A6:B" & Say) Set myList1 = CreateObject("System.Collections.ArrayList") Set myList2 = CreateObject("System.Collections.ArrayList") For i = 1 To UBound(myArr) If Not myList1.Contains(myArr(i, 1)) And myArr(i, 1) <> "" Then myList1.Add myArr(i, 1): myList2.Add myArr(i, 2) Next Say = Range("D" & Rows.Count).End(xlUp).Row myArr = Range("D6:E" & Say) For i = 1 To UBound(myArr) If Not myList1.Contains(myArr(i, 1)) And myArr(i, 1) <> "" Then myList1.Add myArr(i, 1): myList2.Add myArr(i, 2) Next Range("A6").Resize(myList1.Count, 1) = WorksheetFunction.Transpose(myList1.toArray) Range("B6").Resize(myList1.Count, 1) = WorksheetFunction.Transpose(myList2.toArray) Range("D6").Resize(myList1.Count, 1) = WorksheetFunction.Transpose(myList1.toArray) Range("E6").Resize(myList1.Count, 1) = WorksheetFunction.Transpose(myList2.toArray) Set myList1 = Nothing: Set myList2 = Nothing End Sub
https://www.excel.web.tr/threads/vba-coklu-for-doenguesue.196385/#post-1096256
.Net FrameWork yükelemlisiniz. Çok basittir.