2016-04-01 12 views
0

Merhaba aşağıdaki sorun var:VBA Dinamik Aralık Değerleri hesaplama ile

Eğer A sütununda da görebileceğiniz gibi her zaman "1" olduğu B sütunundaki, tarihler var olduğunda birinden diğerine yılda değişiklikleri Ben sarı olarak işaretledim. H sütununda farklı değerler ve sütun I'de, sadece bir yıl içinde% 10'dan daha büyük olan (bu durumda B sütunundaki birden bire kadar) daha büyük olan FIRST değerine sahip olmak istiyorum. Bundan sonra gelecek ilk değere sahip olmak istiyorum. Bu, gelecek yıl>% 10, yani B sütununda 1 ila 1 arasında bir sonraki periyodu ve benzeri.

Bana yardım eden var mı?

Şimdiye kadar bunu programladım, ama bana tüm değerleri>% 10 gösterir, ancak her aralıktaki her bir aralıktaki ilk değeri gösterir.

Sub ABC() 
With ThisWorkbook.Worksheets("Test") 
rowCount = 2 
    Do While .Cells(rowCount + 1, 8).Value <> "" 

    If .Cells(rowCount, 2).Value = 0 And .Cells(rowCount, 8).Value >= 0.1 Then 

     .Cells(rowCount, 9).Value = .Cells(rowCount, 7).Value * 0.1/1.1 
    Else 
     .Cells(rowCount, 9).Value = "" 
    End If 
    rowCount = rowCount + 1 

Loop 

End With 
End Sub 

image

+0

sorun H> 5 olan sütunlarda yanında size değer" ile ne demek anlamak zorunda 1 ila 1 "arasında değişir. Eğer 5'ten büyükse, 1 ile 1 arasında nasıl olabilir? Ayrıca - dünyada "1'den 1'e kadar" ifadesini bile kullanıyorsunuz? 1, bu aralıktaki tek sayıdır. * Belki de *, B sütunundaki değerin 0 olduğu bir dizi ardışık satır gibi bir anlam ifade eder, ancak eğer öyleyse bunu daha açık bir şekilde söylemelisiniz. Sütun H'deki değerleri ve sütun I'de amaçlanan değerleri içeren ilgili bir örnek veri seti yardımcı olacaktır. –

+0

Sorumu güncelledim, umarım şimdi anlamak daha kolay: – ChristianW

cevap

0

Bu kodu görünüyor hücre adresine hatadır

Sub ABC() 
With ThisWorkbook.Worksheets("Test") 
rowCount = 2 
    Do While .Cells(rowCount + 1, 8).Value <> "" 

    If .Cells(rowCount, 2).Value = 0 And .Cells(rowCount, 8).Value >= 0.1 Then 

     .Cells(rowCount, 9).Value = .Cells(rowCount, 8).Value * 0.1/1.1 
    Else 
     .Cells(rowCount, 9).Value = "" 
    End If 
    rowCount = rowCount + 1 

Loop 

End With 
End Sub 
+0

Bu bana yardımcı olmuyor ... – ChristianW