sull Skrevet 19. oktober 2006 Del Skrevet 19. oktober 2006 (endret) Hei, jeg har et lite problem med en funksjon i VBA. Det jeg ikke får til er det siste i oppgaven der man skal lage en sub-prosedyre slik at treghetsmomentet vises utifra en matrise.. Noen som kan hjelpe? oppgave.doc Endret 19. oktober 2006 av sull Lenke til kommentar
Harald Staff Skrevet 19. oktober 2006 Del Skrevet 19. oktober 2006 Så vidt jeg kan skjønne: Combo1 skal inneholde valgene IPE og HEA. Idet en av disse velges, skal den Combo2 fylles med korresponderende Høyde-verdi. Når så en av disse velges i Combo2, skal korresponderende Treghetsmoment skrives til ett eller annet sted. Løs den første først: Tømme Combo2 og fyll med verdier fra rett kolonne idet Combo1 klikkes. (Dvs aller aller først; overfør greiene til Excel og vit hvor de ligger) HTH. Beste hilsen Harald Lenke til kommentar
sull Skrevet 19. oktober 2006 Forfatter Del Skrevet 19. oktober 2006 men hvordan skriver man inn matriser i visualbasic=? Lenke til kommentar
aadnk Skrevet 19. oktober 2006 Del Skrevet 19. oktober 2006 men hvordan skriver man inn matriser i visualbasic=? 7107173[/snapback] En matrise kan man enklest sett representere med en todimmensjonert array (tabell) således: Dim X As Long, Y As LongDim aMatrix() As Long ' Endre datatypen til hva du behøver ' Allokerer en viss størrelse. Bruk Preserve for å beholde den allerede eksisterende informasjonen. ReDim aMatrix(0 To 10, 0 To 10) ' For å finne minimun- og maksimumindeksene til de ulike dimmensjonene, benyttes henholdsvis LBound() og UBound() For X = LBound(aMatrix, 1) To UBound(aMatrix, 1) For Y = LBound(aMatrix, 2) To UBound(aMatrix, 2) ' Sett verdien til dette elementet aMatrix(X, Y) = X * Y Next Next Lenke til kommentar
Harald Staff Skrevet 20. oktober 2006 Del Skrevet 20. oktober 2006 Oppgaven er tatt ut av sin sammenheng, men det virker på meg som du forventes å bruke en Exceltabell som datagrunnlag, og Excels objektmodell, ikke en virtuell matrise. Men jeg har tatt feil før Lenke til kommentar
Moskus Skrevet 20. oktober 2006 Del Skrevet 20. oktober 2006 Jeg tolket det også den veien. Sull, hvilken utdannelse tar du? Lenke til kommentar
sull Skrevet 22. oktober 2006 Forfatter Del Skrevet 22. oktober 2006 (endret) ja grunnlaget er at vi skal legge sub funksjonen i excell, men den forklaringen jeg har fått fra lærer om å lage matriser var mildt sagt manglende.. Jeg er student første året på byggingeniørlinjen på Høgskolen i Bergen Endret 22. oktober 2006 av sull Lenke til kommentar
HDSoftware Skrevet 22. oktober 2006 Del Skrevet 22. oktober 2006 ja grunnlaget er at vi skal legge sub funksjonen i excell, men den forklaringen jeg har fått fra lærer om å lage matriser var mildt sagt manglende.. Jeg er student første året på byggingeniørlinjen på Høgskolen i Bergen 7125059[/snapback] Kan jo hende lærern din tenker på ARRAY når han snakker om Matrise Ikke godt å si Ole Lenke til kommentar
Moskus Skrevet 23. oktober 2006 Del Skrevet 23. oktober 2006 En array er en matrise. In computer programming, an array, also known as a vector or list, is one of the simplest data structures. Arrays hold equally-sized data elements, generally of the same data type. Individual elements are accessed by index using a consecutive range of integers, as opposed to an associative array. Some arrays are multi-dimensional, meaning they are indexed by a fixed number of integers, for example by a tuple of four integers. Generally, one- and two-dimensional arrays are the most common.en.wikipedia.org/wiki/Array Det vil si: En en-dimensjonal array er en vektor på matematikkspråket, mens en to- eller fler-dimensjonal array er en matrise. I dette tilfellet blir det vel riktig å bruke ordet matrise da man må ha en kolonne for tverrsnittshøyden og en for tilhørende treghetsmoment. Lenke til kommentar
Harald Staff Skrevet 23. oktober 2006 Del Skrevet 23. oktober 2006 Jeg tror du ser deg blind på dette med matriser, oppgaven sier ingenting om det. Hvis du kopierer-limer tabellen fra word inn i ark1 i Excel, så kan du ta utgangspunkt i disse kodene: Option Explicit Dim C As Long Sub SettOpp() Sheets(1).DropDowns(1).AddItem "IPE" Sheets(1).DropDowns(1).AddItem "HEA" End Sub Sub Drop1Click() Dim R As Long, RL As Long Select Case Sheets(1).DropDowns(1).ListIndex Case 1 C = 1 Case 2 C = 4 Case Else Exit Sub End Select Sheets(1).DropDowns(2).RemoveAllItems RL = Sheets(1).Cells(Rows.Count, C).End(xlUp).Row For R = 3 To RL Sheets(1).DropDowns(2).AddItem Sheets(1).Cells(R, C).Value Next End Sub Sub Drop2Click() If C < 1 Then Exit Sub MsgBox Sheets(1).Cells(Sheets(1).DropDowns(2).ListIndex + 2, C + 1).Value End Sub Tilordne Drop1-koden til første boks, Drop2-koden til andre og SettOpp til et egnet event (workbook_open eller noe sånt). Men siden du skal bruke kontrollene fra Skjemaverktøylinjen, lurer jeg på om du skal levere VB i det hele tatt, kanskje det heller forventes en formelbasert løsning. Disse kontrollene har ingen intellisense i VB og nevnes ikke i Help, det er nesten bare vi gamlinger som kjenner objeektmodellen og kan kode dem. (Men kanskje er læreren din like gammel som meg ?) HTH. beste hilsen Harald Lenke til kommentar
Moskus Skrevet 23. oktober 2006 Del Skrevet 23. oktober 2006 Poenget var bare å fortelle at informasjonen godt kan forstås som array = matrise Lenke til kommentar
Harald Staff Skrevet 23. oktober 2006 Del Skrevet 23. oktober 2006 Unnskyld Moskus. Det er op, Sull, som jeg mente som "du" i svaret mitt. På skolen i steialderen het det "les oppgaveteksten nøye" og den sier ingenting om verken matriser eller VBA. Men det gjør selvfølgelig ingenting om man lærer å programmere matriser under marsjens gang Harald Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå