Error

Status
Niet open voor verdere reacties.

ronaldo12

Gebruiker
Lid geworden
10 mrt 2014
Berichten
48
Heey,

Weet iemand hoezo ik hier een error uit krijg:

Code:
Sub Programma()

Dim i As Integer
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer

For i = 1 To 16
a = (i - 1) / 5
b = (i - 1) Mod 5
Cells(a, b).Value = CInt(Rnd * 25)
Next i

End Sub
 
In excel hebben Cells geen rij 0 en kolom 0.
In de VBA editor kan je stap voor stap met F8 door de code lopen.
 
Laatst bewerkt:
Je mag gerust binnen de procedure/subs declareren (dim), dat past binnen de scope (levensduur) van de variabele.
Dat maakt zelfs de code beter leesbaar, zeker als je meerdere procedures/subs hebt.
de bron: http://support.microsoft.com/kb/141693
 
Laatst bewerkt:
@TheKnight

Ben jij een fan van Michael Jackson? en hoe ben je dat geworden?
 
De fout ontstaat door gebruik van de verkeerde operator /
In dit geval moet je gebruiken: \
Bovendien moet je in een arrray met ondergrens 1 (en een werkblad is een array met Lbound 1), altijd 1 optellen.
De fout ontdek je snel met de msgbox in de code hieronder.

En ook hier is declareren volstrekt overbodig:

Code:
Sub M_snb()
  For j = 1 To 16
'   msgbox (j-1)\5 +1 & vbtab & (j-1) mod 5 +1
   Cells((j-1)\5 +1, (j-1) mod 5 +1)= CInt(Rnd * 25)
  Next
End Sub

alternatieven:

Code:
Sub M_snb_001()
   For Each cl In Range("A1:E3")
      cl.Value = Fix(Rnd * 25)
   Next
End Sub

Code:
Sub M_snb()
   Range("A1:E3") = "=rand()*25"
End Sub
 
Laatst bewerkt:
Heey,
Weet iemand hoezo ik hier een error uit krijg:

Naast al het bovenstaande is het ook handig om te vermelden welke fout je krijgt. Het valt me op dat veel vraagstellers dat niet doen terwijl dat al veel duidelijkheid kan geven over de oorzaak van een probleem. Een error melding is er niet om de gebruiker te pesten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan