Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. Visual Studio 6.0
VB & Excel: Ciclo For Interno non finisce!!
giovedì 14 settembre 2006 - 10.56
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
real
Profilo
| Newbie
1
messaggi | Data Invio:
gio 14 set 2006 - 10:56
Ciao,
Ho un foglio excel contenente un insieme di intervalli temporali (es. 8.00 | 10.00 | 1.00 ossia dalle 8.00 alle 10.00 dividete in gruppi di 1 ora). Devo riempire un secondo foglio excel con questi intervalli temporali divisi per il tempo (es. 1.00). Gli insiemi di intervalli temporali sono divisi per giorni (per cui devo ciclare per gruppi di colonne).
Ho creato il seguente codice VB:
foglioA = "Inserimento Orari"
foglioB = "Visualizzazione Orari"
' cnt2 contatore colonne foglio A
For cnt2 = 0 To 6
'cnt1 contatore righe del foglio A
cnt1 = 2
conta = 1
While (Sheets(foglioA).Cells(cnt1, 1 + 3 * cnt2).Value <> "")
oraInizio = Sheets(foglioA).Cells(cnt1, 1 + 3 * cnt2).Value
oraFine = Sheets(foglioA).Cells(cnt1, 1 + 3 * cnt2 + 1).Value
break = Sheets(foglioA).Cells(cnt1, 1 + 3 * cnt2 + 2).Value
diffOre = oraFine - oraInizio
numRighe = (diffOre / break)
'scorro le righe del foglio b derivanti dalla riga cnt1 del foglio A
j = 0 For cnt = 1 To numRighe
Sheets(foglioB).Cells(cnt + conta, 1 + cnt2 * 2).Value = oraInizio + (cnt - 1) * break
Sheets(foglioB).Cells(cnt + conta, 1 + cnt2 * 2).NumberFormat = "hh.mm"
Sheets(foglioB).Cells(cnt + conta, 1 + cnt2 * 2 + 1).Value = oraInizio + (cnt) * break
Sheets(foglioB).Cells(cnt + conta, 1 + cnt2 * 2 + 1).NumberFormat = "hh.mm"
Next cnt
conta = conta + numRighe
cnt1 = cnt1 + 1
Wend
Next cnt2
Quello che succede è: il primo ciclo del for interno (su cnt) viene eseguito completamente e scrive tutte le righe. Dal secondo ciclo in poi, il for interno scrive tutte le righe meno l'ultima!!! Qualcuno ha qualche idea?!?!
Grazie,
Alexandra
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 15 set 2006 - 01:06
>Quello che succede è: il primo ciclo del for interno (su cnt)
>viene eseguito completamente e scrive tutte le righe. Dal secondo
>ciclo in poi, il for interno scrive tutte le righe meno l'ultima!!!
>Qualcuno ha qualche idea?!?!
Ciao Alexandra,
direi che la cosa più facile perchè tu capisca dove sta l'errore sia usare il Debugger che è stato creato per questo. Metti dei Breakpoint nel codice, manda in esecuzione e vai avanti passo passo verificando con il Quick Watch il valore delle celle e delle variabili.
Verifica inoltre che nel foglio sorgente non ci siano celle o righe nascoste che ti possono indurre in errore, perchè a vista non le vedi ma in realtà ci sono (nascoste).
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !