
13-11-10, 13:17
|
 | Super Moderator Όνομα: Θανάσης Στυλιανίδης Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική | | Εγγραφή: 18-10-2009 Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 758
| |
Καλημέρα Νίκο.
Θεωρώ ότι πριν καταφύγουμε σε VBA καλό είναι να προσπαθούμε να λύσουμε το πρόβλημα/ερώτημα χωρίς VBA, γιατί έτσι μαθαίνουμε πολλά.
Τώρα για μια προσέγγιση λύσης με VBA ( αν και δεν είμαι ειδικός και καλό θα ήταν να τον κρίνουν οι γκουρού της VBA) θα πρότεινα τον παρακάτω κώδικα Sub HideLines()
όπου Range("D1:D1000") η περιοχή που θα γίνει ο έλεγχος και what:=0 η τιμή που αναζητάμε.
Δεν θα μας χάλαγε να βάλουμε σαν MyRange ολόκληρη την στήλη D ("D:D") νομίζω ότι είναι πολύ γρήγορος.
:icon_out:
Τα λέμε
Θανάσης Κώδικας: Sub HideLines()
Dim c, last, MyRange As Range
Dim i As Double
Dim s As String
Set MyRange = Range("D1:D1000")
i = MyRange.Cells.Count
Set last = MyRange.Cells(i)
Set c = MyRange.Find(what:=0, after:=last)
If Not c Is Nothing Then s = c.Address
Do Until c Is Nothing
c.EntireRow.Hidden = True
Set c = MyRange.FindNext(after:=c)
If c.Address = s Then Exit Do
Loop
MsgBox i - MyRange.Cells.SpecialCells(xlCellTypeVisible).Count & _
" rows are hidden now."
End Sub
|