Avatar billede rynke10 Novice
26. februar 2003 - 22:43 Der er 8 kommentarer og
1 løsning

Hente data fra excel

Jeg skal hente værdier fra et excel-ark og det går også fint når jeg henter fra en celle af gangen.
Men hvordan kan jeg læse flere værdier af gangen ind i et array?
Altså f.ex.  værdierne i b1:b10 ind i mit array.
Avatar billede martin_moth Mester
27. februar 2003 - 01:40 #1
Kan du ikke bare loope over cellerne

for i = 1 to 10
  MyArray(i) = XXX.Cells(2,i)
Next i

Hvor XXX er det du kalder det objekt du bruger til at connecte til Excel med

Hvis ovenstående ikke er fyldestgørende, så smid lige lidt kode, så jeg kan se hvordan du napper værdien fra een celle, så skal jeg give dig noget kode der napper fra flere celler :o)
Avatar billede martin_moth Mester
27. februar 2003 - 01:41 #2
PS: der skal nok stå Cells(2,i).VALUE - det er snart over min sengetid
Avatar billede rynke10 Novice
27. februar 2003 - 17:22 #3
Joooo, det var vist også noget i den stil jeg havde tænkt på, jeg kan vel alligevel ikke fylde et array på en gang, f.ex. fra b2 til b12.

Men det her virker efter hensigten
arrhent(i) = Work.Worksheets("Ark1").Cells(i, 2).Value
Avatar billede martin_moth Mester
27. februar 2003 - 20:11 #4
Yep - og så loope over i fra 2 til 12 :o)
Avatar billede rynke10 Novice
27. februar 2003 - 20:20 #5
Hov, ved du hvordan jeg får lukket skidtet rigtigt igen, jeg har 10 excel.exe liggende i min taskliste.
Jeg afslutter med:

Dim Ex As Excel.Application
  Dim Work As Excel.Workbook
------Åbner ark
----læser variabler o.s.v.

  Ex.Workbooks.Close
  Ex.Application.Quit
  Set Work = Nothing
  Set Ex = Nothing
Avatar billede martin_moth Mester
27. februar 2003 - 20:40 #6
Det burde gøre det - er du sikker på at den ikke "hænger" fra en anden gang, hvor du ikke har fået lukket Excel ned?
Hvis du genstarter, og kører din vbkode med ovenstående "afslutning" burde den lukke Excel ned som forventet...
Avatar billede rynke10 Novice
27. februar 2003 - 20:46 #7
Ok jeg har ikke kigget nærmere på det, så bare at tasklisten var fuld af excel'er ;-)
Det var jo ikke usansynligt at jeg havde glemt noget.
Tak for hjælpen !!
Avatar billede martin_moth Mester
27. februar 2003 - 21:16 #8
Jeg er overbevist at det hele virker efter en genstart - din kode ser meget fornuftig ud, synes jeg
Avatar billede bak Forsker
28. februar 2003 - 08:45 #9
Skal du hente flere celler af gange kan du gøre det i en variant.

Dim varray as variant
varray=Work.Worksheets("Ark1").range("A1:A20")
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester