Avatar billede jiggaboi Nybegynder
21. januar 2008 - 20:54 Der er 35 kommentarer og
1 løsning

VBA kode Array

Jeg har en kode som ik helt forestå, måske kunne en af jer fortælle mig det :)

koden:
MMedlemsNrCurrent = Range("E" & i)
countup = 1
ActivityArray(MedlemsNrCurrent, 0) = Range("E" & i).Value

If ActivityArray(MedlemsNrCurrent, 1) <> "" Then
    ActivityArray(MedlemsNrCurrent, 1) = ActivityArray(MedlemsNrCurrent, 1) + countup
Else
    ActivityArray(MedlemsNrCurrent, 1) = countup
End If


Next i



Problem: jeg forestår ik helt hvad symbolerne "" betyder og hvad countup gører ved koden???
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 20:55 #1
MedlemsNrCurrent = Range("E" & i)
countup = 1
ActivityArray(MedlemsNrCurrent, 0) = Range("E" & i).Value

If ActivityArray(MedlemsNrCurrent, 1) <> "" Then
    ActivityArray(MedlemsNrCurrent, 1) = ActivityArray(MedlemsNrCurrent, 1) + countup
Else
    ActivityArray(MedlemsNrCurrent, 1) = countup
End If


Next i
Avatar billede gider_ikke_mere Nybegynder
21. januar 2008 - 21:38 #2
"" betyder tom eller ignenting - coutup er bare et tal på 1 der tillægges. Den kunne for den sags skyld kaldes Hest.
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 21:40 #3
oki tak.

Jeg ved godt at countup bare er en tal.

Men hvordan kan det være hvis jeg erstatte countup med 2 så bliver mine tal fra arrayet dobbelt så stort???
Avatar billede gider_ikke_mere Nybegynder
21. januar 2008 - 21:46 #4
Hvordan ser funktionen ActivityArray() ud?
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 21:47 #5
Sub Top10ogbund10()
GetMedlemsNummerLimits

Dim ActivityArray(21260, 1) As Variant '21260 er række nummer og 1 = medlemnr
Dim MedlemsNrCurrent, Counter As Integer

Sheets("Reservationer").Select
'tæller antallet af bookninger
antal = ThisWorkbook.Worksheets("Reservationer").Range(Range("E1"), _
Range("E1").End(xlDown)).Count
For i = 2 To antal ' MedlemsnrMax

MedlemsNrCurrent = Range("E" & i)
countup = 1
ActivityArray(MedlemsNrCurrent, 0) = Range("E" & i).Value

If ActivityArray(MedlemsNrCurrent, 1) <> "" Then
    ActivityArray(MedlemsNrCurrent, 1) = ActivityArray(MedlemsNrCurrent, 1) + countup
Else
    ActivityArray(MedlemsNrCurrent, 1) = countup
End If


Next i
Avatar billede gider_ikke_mere Nybegynder
21. januar 2008 - 22:08 #6
Kan du ikke forklare hvad koden skal gøre?
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 22:14 #7
Jeg har en liste af data af holdbookninger af medlemmer,
Jeg skal så udefra disse data udforme en top 10 og bund 10.
Ude fra antal medlemmer er på arket = med antal bookninger.
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 22:14 #8
Resten er koden

Worksheets("HallOfSomething").Cells.Delete

Worksheets("HallOfSomething").Range("A" & 1) = "Medlemsnummer"
Worksheets("HallOfSomething").Range("B" & 1) = "Antal træninger"

For j = 2 To antal

    If (ActivityArray(j, 1) <> "") Then
    Worksheets("HallOfSomething").Range("A" & j) = ActivityArray(j, 0)
    Worksheets("HallOfSomething").Range("B" & j) = ActivityArray(j, 1)
Else
   
End If
Next j

Sheets("hallofsomething").Select
Range("A1:B600").Select
Selection.Sort Key1:=Range("B2"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

'copy range af top 10
    Range("A2:B11").Select
    Selection.Cut Destination:=Range("F2:G11")
    Range("F2:G11").Select
'copy range af bund 10
    Range("A578:B588").Select
    Range("B588").Activate
    Selection.Cut Destination:=Range("F14:G24")
    Range("F14:G24").Select
    'Navngivning af G1
    Range("G1").Select
    ActiveCell.FormulaR1C1 = "Top10"
    'Navngivning af F1
    Range("F1").Select
    ActiveCell.FormulaR1C1 = "Medlemsnr"
   
   
    Range("G13").Select
    ActiveCell.FormulaR1C1 = "Bund10"
   
    Range("F13").Select
    ActiveCell.FormulaR1C1 = "Medlemsnr"
    'sletter hele Række A og B
    Columns("A:B").Select
    Selection.ClearContents
   
End Sub
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 22:15 #9
det er bare det countup jeg ikke forestå :(
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 22:16 #10
fra excel

række E

Medlemsnr
501
563
451
577
425
594
437
452
476
539
559
332
476
521
550
291
540
513
156
598
591
543
362
142
204
483
502
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 22:17 #11
.....op til21260
Avatar billede gider_ikke_mere Nybegynder
21. januar 2008 - 22:18 #12
Ja, men hvad vil du have den skal tælle?
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 22:22 #13
antal hvor mange gange de har booket
Avatar billede gider_ikke_mere Nybegynder
21. januar 2008 - 22:24 #14
Så du vil tælle gentagelser i kolonne E?
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 22:30 #15
ja præcis
Avatar billede gider_ikke_mere Nybegynder
21. januar 2008 - 22:31 #16
Du vil tælle hvor mange gange 501 står der? Og gemme det hvor?
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 22:33 #17
i arrayet
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 22:34 #18
derefter overføre det til ark hallofsomething
Avatar billede gider_ikke_mere Nybegynder
21. januar 2008 - 22:37 #19
Du har måske ikke selv lavet koden?
Avatar billede gider_ikke_mere Nybegynder
21. januar 2008 - 22:39 #20
Jeg skal lige have det helt på plads. Din kode virker, men du skal blot have en forklaring hvordan?
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 22:41 #21
ja
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 22:42 #22
bare count hvad den gør
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 22:42 #23
countup
Avatar billede gider_ikke_mere Nybegynder
21. januar 2008 - 22:49 #24
Den laver et array med plads til 2 værdier i hver række. Derefter søger den kolonne E igennem. Tallet i E, bliver lagt på samme placering i arrayet, altså hvis den finder tallet 501, skrives der 501 i ActivityArray(501, 0). Samtidig tælles der op i ActivityArray(501, 1) med tallet countup. Det er derfor der tælles dobbelt, hvis du ændrer 1 til 2.
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 22:51 #25
oki mange tak 200 p til dig
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 22:52 #26
hehe hvordan gøre lig nu det henne???
Avatar billede gider_ikke_mere Nybegynder
21. januar 2008 - 23:00 #27
Når jeg putter dette svar, skal du markere mit NAVN I DEN LILLE BOKS NEDERST PÅ SIDEN.
Avatar billede gider_ikke_mere Nybegynder
21. januar 2008 - 23:00 #28
Ups, der ramte jeg vidst Caps Lock.
Avatar billede gider_ikke_mere Nybegynder
21. januar 2008 - 23:06 #29
Avatar billede gider_ikke_mere Nybegynder
21. januar 2008 - 23:16 #30
Finder du ud af det?
Avatar billede gider_ikke_mere Nybegynder
21. januar 2008 - 23:20 #31
Er det en eksamensopgave eller lignende?
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 23:23 #32
yes, ska forsvar den:) fik du de 200point?
Avatar billede gider_ikke_mere Nybegynder
21. januar 2008 - 23:24 #33
Ja, tak. Hvornår skal du op?
Avatar billede jiggaboi Nybegynder
21. januar 2008 - 23:28 #34
hehe imorgen, så lig igang med det sidste forberedelse :p
hmm har lig en sidste spørgsmål, det jo fandme 1 måned jeg sidste lavede koden

myArray(i, 1) = 0
myArray(i, 2) = 0

hvorfor skal man man fylder array med 0
Avatar billede binuyogi Nybegynder
22. januar 2008 - 17:57 #35
Hi,

  Can you please send your Visual Basic problem to me in English, i can solve it

Email Me: binuyogi@hotmail.com

Thanks,
Binu
Avatar billede gider_ikke_mere Nybegynder
22. januar 2008 - 18:36 #36
jiggaboi: Den forstår jeg ikke lige. Den indgår da ikke i koden!

binuyogi: He doesn't have a problem, but just needed an explanation on the code.
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