Εμφάνιση ενός μόνο μηνύματος
  #4  
Παλιά 07-09-19, 08:54
Το avatar του χρήστη Spirosgr
Spirosgr Ο χρήστης Spirosgr δεν είναι συνδεδεμένος
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού 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 ExtractInts()
    Dim lrow        As Long
    lrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    Dim i           As Long
    Dim cellVal     As Double
    Dim intPart     As Long
    Dim k           As Long
    Application.ScreenUpdating = False
    ActiveSheet.Range("b1:b" & lrow).ClearContents

    For i = 1 To lrow
        cellVal = ActiveSheet.Range("a" & i).Value
        intPart = Int(cellVal)
        If intPart = cellVal Then
            k = k + 1
            ActiveSheet.Range("b" & k).NumberFormat = ActiveSheet.Range("a" & i).NumberFormat
            ActiveSheet.Range("b" & k).Value = ActiveSheet.Range("a" & i).Value
        End If
    Next i

'    ActiveSheet.Sort.SortFields.Clear
'    ActiveSheet.Sort.SortFields.Add Key:=Range("b1"), _
'                                    SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
'                                    xlSortTextAsNumbers
'    With ActiveSheet.Sort
'        .SetRange Range("b1:b" & lrow)
'        .Header = xlNo
'        .MatchCase = False
'        .Orientation = xlTopToBottom
'        .SortMethod = xlPinYin
'        .Apply
'    End With
End Sub
Λειτουργεί, στο ενεργό φύλλο (ActiveSheet).
Γιά άλλο φύλλο, αντικαταστήστε με το κωδικό του όνομα.
Η ταξινόμηση (αύξουσα), είναι απενεργοποιημένη (ενεργοποιήστε αν χρειάζεται).
Για ταξινόμηση φθίνουσα, το κόκκινο να γίνει xlDescending.
Πριν ξεκινήσει, καθαρίζει την Β στήλη.
Η τελευταία γραμμή της Α, είναι πάντα μεγαλύτερη (το πολύ ίση) με της Β.
Για το λόγο αυτό, δεν χρειάζονται (στο ζητούμενο αυτό και μόνο), δύο μεταβλητές lrow.
Το NumberFormat του αριθμού που θα αντιγραφεί (Β),
είναι ίδιο με το NumberFormat του πρωτότυπου (Α).
Απάντηση με παράθεση