2016-03-22 17 views
1

Bugün yaklaşık 8 saat boyunca çalışmam için uğraştım ve yanlış gittiğim yerde çalışamadığımı görüyorum.şartlı olarak bir liste kutusuna ekleyin

Liste kutusunda1 var ve 14 günden uzun hesap numaraları ile doldurulmasını istiyorum.

Sütun A J tarihini İşte

tutan hesap numaraları Sütun tutun şimdiye kadar nazikçe bana sağlanan olduğunu kullanıyorum kod, hiçbir başarının

Private Sub UserForm_Initialize() 
     Dim I As Integer 
    Dim maxRow As Integer 

    maxRow = 100 
    ListBox1.Clear 
    For I = 1 To maxRow 
     If (DateDiff("d", Now, Range("J" & I).Value) > 14) Then 
      ListBox1.AddItem Range("A" & I) 
     End If 
    Next I 
    End Sub 
ile tüm gün onu tadil edilmiş olan

Ayrıca, belgeye bir bağlantı ekledim, böylece çalışmasına neden olabilecek başka bir kodlamanın olup olmadığını görebilirsiniz.

Belki bu sizin için çalışacaktır peşin

Click here to download my document

+1

Böyle bir liste kutusu bir dizi ekleyemezsiniz. A # değerini istiyorsanız, aralığın değerini istediğinizi belirtmeniz gerekir. – asp8811

+1

Ne @ asp8811 belirtilen tüm değişkenleri 'Dim' isteyebilirsiniz, mümkün olduğunda '.Value2' kullanın,' Şimdi '' J'de herhangi bir değer daha büyük olduğunu varsayalım gibi 'DateDiff' için tarihleri ​​değiştirin sütun ve ** durdurma ** Excel çalışma kitaplarını parola korumalı makrolarla dağıtma. Hiç kimse, önce kodu gözden geçirme seçeneği olmadan, bilgisayarında yabancı kodu çalıştırma izni vermez. Son olarak, şifrelerinizi VBA kodunuzdan kaldırmak isteyebilirsiniz. Bir yönetici şifresi var gibi görünüyor = 'test'. – Ralph

+0

Ben gemide tüm yorumları almak - Ne yazık ki bu benim için yeni bir şey bu yüzden ben şifreni göndermek için özür dilemek için özür dilerim emin değilim, ne yaptığımı fark etmedi. Çözümlerinize gelince, ne tavsiye ettiğinizi nasıl yapacağınıza dair bir fikriniz yok. –

cevap

1

teşekkürler:

Private Sub UserForm_Initialize() 

Dim I As Long 
Dim maxRow As Long 

ListBox1.Clear 

With Worksheets("Sheet1") 
    maxRow = .Cells(.Rows.Count, "A").End(xlUp).Row 
    For I = 1 To maxRow 
     If IsDate(.Range("J" & I).Value) Then 
      If Now() - .Range("J" & I).Value2 > 14 Then 
       Reporting.ListBox1.AddItem .Range("A" & I).Value2 
      End If 
     End If 
    Next I 
End With 

End Sub 

enter image description here

+0

Zaman ayırdığınız için teşekkür ederiz, gerçekten takdir - Bu kodu çalıştırdım, hiçbir hata atılmadı ama liste kutusunda hiçbir şey listelenmiyor –

+0

Hesapların/tarihlerin alması gereken sayfanın adı nedir? – Ralph

+0

Yaprak Sayfa1 denir - Ben sadece bunu denedim ama işe yaramadı: Sayfalar ("Sayfa1"). Aralığı ("J" & I) –

İlgili konular