Routine a scalare sulle righe
Hai un problema con Excel? 
Routine a scalare sulle righe
di Spinn (utente non iscritto) data: 14/02/2013 17:19:14
Riga dopo riga per 200 righe devo comparare i dati contenuti nelle celle corrispondenti a colonne che indicherò nella routine (es. A1, B1, D1, F1 ecc.). I dati sono nelle celle sempre sulla stessa riga. Come devo fare per fare funzionare il contatore in automatico fino all 200ma riga? Grazie
di Vecchio Frac data: 14/02/2013 17:44:57
Non ho compreso perchè hai indicato il numero di versione di Excel con il punto interrogativo. Se non lo sai tu che versione hai... ^_^
Nel merito, il concetto è:
fai un ciclo con un contatore "i" che va da 1 a 200. Considera la cella i-esima. Confrontala con la cella nella colonna stabilita. Ripeti il ciclo.
for i = 1 to 200
if cells(i, "A") = cells(i, "F") then ...
next
di Spinn (utente non iscritto) data: 14/02/2013 21:57:31
Non funziona
Private Sub CommandButton1_Click()
For i = 1 To 11
If Cells(i, "A") = Cells(i, "F") Then
If Cells("c") = Cells("a") Then
Cells("b") = Cells("d")
End If
Next
End Sub |
di HarryBosch data: 15/02/2013 00:23:19
Ciao Spinn
nel tuo esempio manca la chiusura di un IF con End if; e i riferimenti del Cells successivi al primo If sono errati in quanto Cells("c") non definisce nessun range.
Se devi confrontare due condizioni, puoi anche unire gli IF in un'unica soluzione, utilizzando l'operatore AND o OR, a seconda del caso.
Ti consiglio di dichiarare sempre le variabili (con Option Explicit in testa al modulo), per sfruttare al meglio la memoria ed evitare errori di sintassi.
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 11
If Cells(i, "A") = Cells(i, "F") Then
If Cells(i, "c") = Cells(i, "a") Then
Cells(i, "b") = Cells(i, "d")
End If
End If
Next
End Sub
'oppure:
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 11
If Cells(i, "A") = Cells(i, "F") And Cells(i, "c") = Cells(i, "a") Then
Cells(i, "b") = Cells(i, "d")
End If
Next
End Sub
|
di Spinn (utente non iscritto) data: 21/02/2013 09:53:09
Risolta
di HarryBosch data: 21/02/2013 19:41:00
Allora, per le prossime volte, dovresti spuntare la casellina sopra il Messaggio quando apri il thread per rispondere ^_^
La spunto io
Vuoi Approfondire?