26. oktober 2013 - 00:18Der er
21 kommentarer og 1 løsning
Excel 2007 - VBA - fejl ved RowSource
Jeg er lige startet med at lære VBA og er ved at læse bogen "Excel 2007 - programmering med VBA".
Der er et eksempel i bogen, hvor man skal oprette en brugerformular og tilhørende procedurer der sætter data ind i et ark. Jeg kan ikke få den første procedure til at fungere i min egen indtastning, men når jeg bruger det eksempel jeg har fra bogens hjemmeside, så virker den fint. Jeg ved hvilken linje der i første omgang giver problemer, og kan se, at der er forskel på hvordan de to ark reagerer ved indtastning. Men jeg kan ikke finde ud af årsagen.
Der kommer en bebug ved følgen linje: .RowSource = "Forbrug"
Forskellen ved mit egen ark og bogens, er, at hvis jeg i bogens ark sletter ".RowSource" og skal skrive linjen igen, så lige så snart jeg skriver " . " - kommer der en lille boks frem med en masse valgmuligheder, hvor jeg så kan vælge ".RowSource".
Den lille boks kommer ikke frem i mit eget ark!
Er der nogen der har et bud på hvad der er galt?
Hele proceduren:
Private Sub UserForm_Activate() With lstForbrugType .RowSource = "Forbrug" .ListIndex = 0 End With
txtDato.Text = Format(Now, "dd.mmm.yyyy")
With lstKortType RowSource = "Korttype" ListIndex = 0 End With End Sub
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Jeg har fundet fejlen. Det var Comboboxen der ikke var "døbt" rigtigt. Så nu er jeg kommet lidt længere!
Jeg troede, at boxen havde det rigtige navn, men har forvekslet Combobox og Label med hinanden.
Det har også rettet fejlen, når jeg fx sletter ".RowSource" og skriver linjen igen, - nu kommer den lille boks frem med det samme, når jeg har skrevet " . " - og jeg kan så fx vælge ".RowSource".
Men nu er der kommet et andet problem, når jeg kører brugerformularen!
I Comboboxen med forbrugstype, bliver der kun indsat værdi fra den første celle fra det navngivet område (Forbrug). Jeg har navngivet området (B2:B9) i arket "Lister", og området har omfang: Projektmappe.
Når jeg klikker på navnet (Forbrug) i arket, så bliver hele området markeret. Så umiddelbart virker det som om det er lavet rigtigt.
Nej, når jeg klikker på den lille pil, kommer der kun værdien fra første celle. Hele boxen bliver åbnet, men under første linje (værdien fra celle B2) er feltet tomt.
Forbrugstype: Hele boxen bliver åbnet, men kun værdi fra celle B2 bliver indsat. Under første linje (værdien fra celle B2) er feltet tomt. Men masser af tom plads.
Korttype: Boxen bliver åbnet, men der er kun én linje i boxen. Og den er tom.
Jeg har prøvet at ændre korttype til "Lister!F2:F5". Og jeg har prøvet at flytte værdierne fra B2:B9 til G2:G9, for at flytte dem væk fra det navngivet område. Men desværre uden resultat.
Koden er som følger:
Private Sub UserForm_Activate() With lstForbrugType .RowSource = "Lister!G2:G9" .ListIndex = 0 End With
txtDato.Text = Format(Now, "dd.mmm.yyyy")
With lstKorttype RowSource = "Lister!F2:F5" ListIndex = 0 End With
Private Sub UserForm_Activate() With lstForbrugType .RowSource = "Forbrug" .ListIndex = 0 End With
txtDato.Text = Format(Now, "dd.mmm.yyyy")
With lstKortType .RowSource = "Korttype" '<-- Punktum, indsat .ListIndex = 0 End With End Sub
Synes godt om
Ny brugerNybegynder
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.