saibon Δημοσ. 15 Ιουλίου 2009 Μέλος Δημοσ. 15 Ιουλίου 2009 If (Worksheets(mySheet.Name).Cells(i, 16).Value < 12) δεν παίζει παιδιά πάλι τα ίδια
achnoula Δημοσ. 15 Ιουλίου 2009 Δημοσ. 15 Ιουλίου 2009 Δοκίμασα τον κώδικά σου σε excel 2003 και το μόνο που πρέπει να κάνεις είναι να πάρεις την Next mySheet από την θέση της και να την βάλεις στο τέλος μετά την next. Έτσι λύνεις το πρόβλημα με το error 91 End If Next Next mySheet End Sub Δοκίμασέ το !
saibon Δημοσ. 15 Ιουλίου 2009 Μέλος Δημοσ. 15 Ιουλίου 2009 Δοκίμασέ το ! anhoula σε υπέρ ευχαριστώ έπαιξε είσαι πολύ καλός ευχαριστώ ευχαριστώ
achnoula Δημοσ. 15 Ιουλίου 2009 Δημοσ. 15 Ιουλίου 2009 anhoula σε υπέρ ευχαριστώ έπαιξε είσαι πολύ καλός ευχαριστώ ευχαριστώ Να 'σαι καλά! Θα σου πρότεινα όμως να χρησιμοποιήσεις την select case από όλες αυτές τις if. Θα κερδίσεις σε γραμμές κώδικα και σε ευκολία ανάγνωσης του κώδικα.
saibon Δημοσ. 15 Ιουλίου 2009 Μέλος Δημοσ. 15 Ιουλίου 2009 Να 'σαι καλά!Θα σου πρότεινα όμως να χρησιμοποιήσεις την select case από όλες αυτές τις if. Θα κερδίσεις σε γραμμές κώδικα και σε ευκολία ανάγνωσης του κώδικα. ααααα σωστά δεν το είχα σκεφτεί αχ αυτός ο προγραμματισμός να τρελαίνεσαι καμιά φορά
MastroGiannis Δημοσ. 17 Ιουλίου 2009 Δημοσ. 17 Ιουλίου 2009 εγώ δεν καταλαβαίνω για ποιον λόγο ψάχνεις στη συλλογή WorkSheets το φύλλο το οποίο ήδη έχεις στην mySheet. Η πρόταση Worksheets(mySheet.name) σου επιστρέφει το ίδιο φύλλο στο οποίο δείχνει η mySheet. Δες ένα παράδειγμα πως θα μπορούσε να γίνει ο κώδικάς σου: >Sub Test() Dim MySheet As Worksheet Dim cell As Range For Each MySheet In Worksheets MsgBox MySheet.Name For Each cell In MySheet.Range("P7:P200").Cells With cell '<12 If .Value <= 12 Then .Offset(, 1) = .Value * 5 End If '>12<=24 If .Value > 12 And .Value <= 24 Then .Offset(, 1) = ((.Value - 12) * 8) + 60 End If '>24<=36 If .Value > 24 And .Value <= 36 Then .Offset(, 1) = ((.Value - 24) * 9) + 60 + 96 End If '>36<=48 If .Value > 36 And .Value <= 48 Then .Offset(, 1) = ((.Value - 36) * 8) + 60 + 96 + 108 End If '>48<=60 If .Value > 48 And .Value <= 60 Then .Offset(, 1) = ((.Value - 48) * 5) + 60 + 96 + 108 + 96 End If End With Next cell Next MySheet End Sub
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.