Det är nu snart 3 år sedan jag provade att få hjälp med en loop i ett program. Tyvärr så fick jag ingen bra hjälp så programmet blev väldigt stort med mycket kod som säkert kunde kortats ner med en loop. Nu är jag på g med att göra om programmet och tänkte jag skulle försöka igen. Här är mitt problem. Det går inte att skriva något i stil med ... Satt och "fnulade" på ditt problem. Nej jag får ingen att funka. Programmet hänger sig bara och jag får avsluta programmet med Aktivitetshanteraren. Jag gjorde om dina koder så att dom ser ut som nedan. Antal rader är omgjort till 0-37 efersom man börjar med rad 0 och avslutar med rad 37 (38 rader) Sedan gjorde jag om så att om loopen hittar "Cb" ska det radnumret skrivas in i rutan PersRow. Loop igen
VB skriker ilsket att proceduren är för stor. Och tacka fan för det när jag inte klarar av loopar. Mitt program ska söka igenom 38 celler i en Grid efter en cell som det står Cb i. Progammet ska då gå in i respektive cell och kontrollera om det står Cb i cellen. Om det står Cb i cellen ska programmet gå längst ut i en textbox och hämta ett namn som sedan ska skrivas in i en annan ruta. Hittar programmet "Cb" i cell 1 ska han skriva in värdet från N2 osv. Hittar programmet "Cb" i cell 2 ska man ha värdet ur N3 osv. Hoppas ni förstår vad jag menar. Koden ser just nu ut som nedan vilken blir en himla massa kod eftersom det är sammanlagt 38 celler.
Grid1.row = 0
Grid1.col = 1.Text '(Den här kolumnen ska alltid vara så här)
If.Grid1.Text = "Cb" Then
Bil1.Text = N1.Text
End If
Grid1.row = 1
Grid1.col = 1.Text '(Den här kolumnen ska alltid vara så här)
If.Grid1.Text = "Cb" Then
Bil1.Text = N2.Text
End If
Grid1.row = 2
Grid1.col = 1.Text '(Den här kolumnen ska alltid vara så här)
If.Grid1.Text = "Cb" Then
Bil1.Text = N3.Text
End If
OSV.....
Sv: Loop igen
for a=0 to 38
if grid1(1,a).text = "Cb" then ..
next
eller
dim x as grid1
for a=0 to 38
x.row = a
x.col = 1
if x.text = "Cb" then ...
next
Sv: Loop igen
Pelle kom före
Utan att se hela koden så verkar detta vara optimalt.
Lycka till.
Sven som är "bög" på att optimera och hatar slarvig kod.
Lita inte på att processorn skall dölja ditt shit.Sv: Loop igen
'alternativ 1
For a = 0 To 37
If Schema.Grid1(1, a).Text = "Cb" Then PersRow.Text = a
Next
'alternativ2
'Dim X As Schema.Grid1
'For a = 0 To 37
' X.Row = a
' X.Col = 1
' If X.Text = "Cb" Then PersRow.Text = a
'Next