[vba excel]for lus en reeks getallen

Pagina: 1
Acties:

  • 107mb
  • Registratie: Juni 2004
  • Laatst online: 14-02 16:09
een macro heeft de volgende functionaliteit:
doorloop een 150-tal files.
per file moeten gegevens van regel 4, 8, 10 - 20, 22 - 30 ingelezen worden in een hoofdArray.

ik heb dit alsvolgt opgelost:
de bovenstaande reeks in een hulpArray gestopt:
code:
1
2
3
4
hulpArray(0) = 4
hulpArray(1) = 8
hulpArray(2) = 10
enz.


daarna de lus:
code:
1
2
3
for a = 0 to 21
    hoofdArray(teller,0) = cells(hulpArray(a),1)
next a


het werkt wel, maar het is geen compacte code. is dit niet anders op te lossen, bijvoorbeeld:
code:
1
for a = {4,8,10,11,12, enz.)

[ Voor 4% gewijzigd door 107mb op 11-09-2006 15:24 ]


  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Je kan het begin nog iets verkorten met:
Visual Basic:
1
hulpArray = Array(4,8,10,11,...)

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


  • Stiegl
  • Registratie: Mei 2004
  • Laatst online: 02-02 14:39
Is dit niet leuker:

Visual Basic:
1
2
3
4
5
6
For a = 4 to 30
   Select Case a
      Case 4, 8, 10 To 20, 22 To 30
         hoofdArray(teller,0) = cells(hulpArray(a),1)
   End Select
Next a


v v Dat bedoelde ik uiteraard :P

[ Voor 21% gewijzigd door Stiegl op 11-09-2006 15:59 ]

Uit onderzoek is gebleken dat 85% van alle statistieken niet klopt


  • 107mb
  • Registratie: Juni 2004
  • Laatst online: 14-02 16:09
JAA! dit is veel leuker

met een kleine aanpassing, want de hulparray is niet meer nodig!:

Visual Basic:
1
2
3
4
5
6
for a = 4 to 30
   Select Case a
      Case 4, 8, 10 To 20, 22 To 30
         hoofdArray(teller,0) = cells(a,1)
   End Select
next a


thanks!