Genel liste nasıl sıralanır?

Konu

4 sütunum var. ilk iki (A & B) sütun, verdiğim kontrollerin listesidir. daha sonra diğer iki (C & D) sütunu, Banka'dan gelen çeklerin listesidir. Bu gibi görünüyor:

 A ---------- B ---------- C ---------- D SORUNLU --- Tutar ---- En İyi Cashed --- - miktar 001 ------ 112.00 ------001 ------ 112.00 002 ------ 200.25 ------ 003 ------ 350.00 003 --- --- 350.00 ------ 004 ------ 512.00 004 ------ 512.05 ------ 005 ------ 200.10 005 ------ 200.05 ---- 007 ------ 821.30 006 ------ 300.25 ------ 009 ------ 100.10 007 ------ 821.30 ------ 010 ----- 500.00 008 ------ 254.23 009 ------ 100.00 010 ------ 500.00 

Şimdi yapmak istediğim, tüm genel kontrol numaralarını A ve C sütunlarında hizalamak ve eğer miktar aynı değerde ise bana E sütununu bildirmek. Bu gibi görünecek:

 A ---------- B ---------- C ---------- D ---------- E - SORULAN ---- Tutar ---- En fazla para verildi ---- tutar ----- Değer 001 ------ 112.00 ------ 001 ------ 112.00 ----- GERÇEK 002 - ---- 200.25 003 ------ 350.00 ------ 003 ------ 350.00 ----- GERÇEK 004 ------ 512.05 ------ 004 - ---- 512.00 ----- YANLIŞ 005 ------ 200.05 ------ 005 ------ 200.10 ----- YANLIŞ 006 ------ 300.25 007 - ---- 821.30 ------ 007 ------ 821.30 ----- GERÇEK 008 ------ 254.23 009 ------ 100.00 ------ 009- ---- 100.80 ----- YANLIŞ 010 ------ 500.00 ------ 010 ------ 500.00 ----- GERÇEK 

Çözüm

Varsayımlar

  • 1. Maksimum veri satırı A sütununda bulunur.
  • 2. Makro yürütülmesi sırasında aktif sayfa veri içeren sayfadır.

 Alt AlignAndAccount () Dim lMaxRows Uzun Dim lRowBeanCounter Long Sütunlar ("A: B") .Seçimi Seçin.Sort _ Key1: = Aralık ("A2"), Order1: = xlAscending, _ Header: = xlYes, OrderCustom: = 1, _ MatchCase: = False, Oryantasyon: = xlTopToBottom, _ DataOption1: = xlSortNormal Sütunlar ("C: D") .Seçimi Seçin.Sort _ Key1: = Aralık ("C2"), Order1: = xlAscending, _ Başlık: = xlYes, OrderCustom: = 1, _ MatchCase: = False, Oryantasyon: = xlTopToBottom, _ DataOption1: = xlSortNormal lMaxRows = Hücreler (Rows.Count, "A"). End (xlUp) .Row Hücreler (1, "E"). ) = "Value" lRowBeanCounter = 2 için lMaxRows Vaka Hücreleri Seçin (lRowBeanCounter, "A") Vaka Oldu = Hücreler (lRowBeanCounter, "C") = Hücreler (lRowBeanCounter, "B") = Hücreler (lRowBeanCounter, "B") = Hücreler (lRowBeanCounter, "B") = )) Sonra Hücreler (lRowBeanCounter, "E") = "TRUE" Başka Hücreler (lRowBeanCounter, "E") = "YANLIŞ" Durumda <Hücreler Varsa (lRowBeanCounter, "C") Aralık ("C" ve lRowBeanCounter & "" : D "& lRowBeanCounter) .Seçim Seçimi.Insert Shift: = xlDown 'Hücreleri (lRowBeanCounter, " E ") =" YANLIŞ "Vaka Else Aralığı (" A "& lRowBeanCounter &": B "& lRowBeanCounter). Seçimi Seçin. Yer Değiştirme Shift: = xlDown lMaxRows = lMaxRows + 1 End Seç Sonraki lRowBeanCounter End Sub 

Not

Forumdaki bu ipucu için rizvisa1 'e teşekkür ederiz.

Önceki Makale Sonraki Makale

En Ipuçları