Προς το περιεχόμενο

vba χρήση συγκεκριμένου ονόματος Worksheet


saibon

Προτεινόμενες αναρτήσεις

Δημοσ.
Δοκίμασα τον κώδικά σου σε excel 2003 και το μόνο που πρέπει να κάνεις είναι να πάρεις την Next mySheet από την θέση της και να την βάλεις στο τέλος μετά την next. Έτσι λύνεις το πρόβλημα με το error 91

 

End If

Next

Next mySheet

End Sub

 

Δοκίμασέ το !

Δημοσ.
anhoula σε υπέρ ευχαριστώ έπαιξε είσαι πολύ καλός ευχαριστώ ευχαριστώ

 

Να 'σαι καλά!

Θα σου πρότεινα όμως να χρησιμοποιήσεις την select case από όλες αυτές τις if. Θα κερδίσεις σε γραμμές κώδικα και σε ευκολία ανάγνωσης του κώδικα.

Δημοσ.
Να 'σαι καλά!

Θα σου πρότεινα όμως να χρησιμοποιήσεις την select case από όλες αυτές τις if. Θα κερδίσεις σε γραμμές κώδικα και σε ευκολία ανάγνωσης του κώδικα.

 

ααααα σωστά δεν το είχα σκεφτεί

 

αχ αυτός ο προγραμματισμός να τρελαίνεσαι καμιά φορά

Δημοσ.

εγώ δεν καταλαβαίνω για ποιον λόγο ψάχνεις στη συλλογή WorkSheets

το φύλλο το οποίο ήδη έχεις στην mySheet.:confused:

Η πρόταση 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

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...