|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
[vba excel] - estrarre prime righe successive a celle vuote
Ciao a tutti. Mi scuso per il titolo un pò criptico ma non ho trovato di meglio. Spero con un esempio pratico di rendere l'idea.
Codice:
1 aaa 2 bbb 3 4 ccc 5 6 7 ddd 8 eee 9 ffff 10 11 ggg |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Ho fatto qualche piccolo progresso.
Codice:
Option Explicit
Sub primi()
Dim ultimariga As Long, i As Long
ultimariga = Range("a65536").End(xlUp).Row
For i = 1 To ultimariga
Do While IsEmpty(Range("a" & i)) And Range("a" & i).Offset(1, 0) <> ""
MsgBox Range("a" & i).Offset(1, 0)
Exit Do
Loop
Next i
End Sub
![]() edit. Pare che adesso funzioni tutto a dovere Codice:
Option Explicit
Sub primi()
Dim ultimariga As Long, i As Long
ultimariga = Range("a65536").End(xlUp).Row
If Range("a1") <> "" Then
MsgBox Range("a1")
End If
For i = 1 To ultimariga
Do While IsEmpty(Range("a" & i)) And Range("a" & i).Offset(1, 0) <> ""
MsgBox Range("a" & i).Offset(1, 0)
Exit Do
Loop
Next i
End Sub
Ultima modifica di john_revelator : 24-11-2009 alle 23:24. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Più che altro credo si possa tranquillamente evitare un Do Loop nidificato nel For, e l'uso degli Offset.
Se è stabilito che [A1] sia sempre <> "", allora si può anche evitare l'If a cui ti riferisci : Codice:
Dim i As Long
Dim ultimariga As Long
ultimariga = Range("A65536").End(xlUp).Row
For i = 1 To ultimariga
On Error Resume Next
If Range("A" & (i - 1)).Text = "" And Range("A" & i).Text <> "" Then MsgBox Range("A" & i).Text
Next i
Codice:
Dim i As Long
Dim ultimariga As Long
ultimariga = Range("A65536").End(xlUp).Row
If Range("A1").Text <> "" Then MsgBox Range("A1").Text
For i = 2 To ultimariga
If Range("A" & (i - 1)).Text = "" And Range("A" & i).Text <> "" Then MsgBox Range("A" & i).Text
Next i
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Ciao Marco. Grazie mille. E' perfetto e molto più semplice rispetto ai casini che la mia mente malata aveva partorito.
Sei sempre il mio eroe. Buona serata e grazie ancora. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:43.





















