Θέμα: Πρότυπα Ερώτημα για την vba

Εμφάνιση ενός μόνο μηνύματος
  #5  
Παλιά 28-10-12, 12:40
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλημέρα!

Συμφωνώ με το Σπύρο.

Στο συγκεκριμένο βρόχο (For i = .... Next) μπορούμε να ορίσουμε τόσο την αρχή όσο και το τέλος του αριθμητή (i).

Για παράδειγμα: For i = 11 To 100 ....... Next

Ωστόσο, για να αντιγράψουμε σε μια περιοχή κελιών μια τιμή δεν χρειάζεται βρόχος (For...Next, Do....Loop κλπ.)

Αρκεί η γραμμή: Range("A11:A100").Value = Range("A10").Value

Νίκο, ένας απλός τρόπος για να αποτρέψεις την καταχώρηση σε κελιά, είναι να τα κλειδώσεις και να "ξεκλειδώσεις" τα υπόλοιπα (CTRL+1** > Προστασία).
** Όχι το πλήκτρο 1 από το αριθμητικό πληκτρολόγιο.


Η μεταβλητή noROWS υποθέτω ότι δηλώνει την τελευταία μη κενή γραμμή μιας στήλης.

Έστω ότι αυτή η στήλη είναι η Β.

Σύμφωνα με τα παραπάνω ο κώδικας μπορούσε να διαμορφωθεί έτσι:

Κώδικας:
Sub Test1()
    Dim LastRow As Long
    LastRow = Range("B" & Rows.Count).End(xlUp).Row
    If LastRow > 10 Then
        Range("A11:A" & LastRow).Value = Range("A10").Value
    End If
End Sub
Αν πάλι πρέπει να ορίσει ο χρήστης την τελευταία μη κενή γραμμή τότε έχουμε:

Κώδικας:
Sub Test2()
    Dim LastRow As Long
    If TypeOf Selection Is Range Then
        LastRow = Selection.Row
        If LastRow > 10 Then
            Range("A10:A" & LastRow).Value = Range("A10").Value
        End If
    End If
End Sub
Όσο για τα Select που χρησιμοποιείς σου προτείνω να δοκιμάσεις το αρχείο στον παρακάτω σύνδεσμο: http://www.ms-office.gr/forum/excel-...html#post12655

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση