
11-06-18, 19:18
|
 | Συντονιστής Όνομα: Σπύρος Τσιλιγιάννης Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική | | Εγγραφή: 22-11-2011 Περιοχή: Αθήνα
Μηνύματα: 2.321
| |
Το σωστό είναι: Κώδικας: Sub SumBOLDRED()
Dim LastRow As Long, i As Long, MySum As Double
LastRow = Φύλλο1.Cells(Rows.Count, 1).End(xlUp).Row
MySum = 0
For i = 1 To LastRow
If IsNumeric(Φύλλο1.Cells(i, 1)) And _
Φύλλο1.Cells(i, 1).Font.Bold = True And _
Φύλλο1.Cells(i, 1).Font.ColorIndex = 3 Then
MySum = MySum + Cells(i, 1)
End If
Next i
Φύλλο1.Range("k1").Value = MySum
End Sub
*Όπου Φύλλο1 το κωδικό όνομα φύλλου.
(Θα προτιμούσα να αλλαχθεί με κάτι σαν... Sht1)
**Αν θέλουμε να «τρέχει» σε κάθε ενεργό φύλλο, το αλλάζουμε με ActiveSheet.
Το σφάλμα, είναι στην γραμμή κώδικα, που βρίσκει την τελευταία γραμμή με «γεμάτο» κελί.
αντί Κώδικας: LastRow = Range("A1:A20").End(xlUp).Row
πρέπει Κώδικας: LastRow = Φύλλο1.Cells(Rows.Count, 1).End(xlUp).Row
***το MySum As Double είναι πολύ καλά στην μορφή που είναι,
διότι επιτρέπει μεγάλους αλλά και δεκαδικούς αριθμούς.
|