10. juli 2014 - 14:59Der er
3 kommentarer og 1 løsning
Excel: Kan man kun bruge "Range" når der er mere end en celle?
Hej Eksperter
I forbindelse med en række ComboBokse hvis lister er afhængige af hinanden, har jeg udfordringer med at få programmet til at virke når jeg forsøger at sætte et range der kun består af en celle. Burde man ikke kunne det?
Private Sub ComboBox2_Enter() Dim rng1 As Range
If ComboBox1.Value = "" Then ComboBox2.Clear ElseIf ComboBox1.Value = Sheet2.Range("A2") Then Set rng1 = Sheet2.Range("B2:B3") Me.ComboBox2.List = rng1.Cells.Value.......
Ovenstående virker fint i helheden, men når jeg har behov for at Range("B2:B3") eksempelvis skulle være Range("B3") eller Range("B3:B3") så stopper programmet ved Me.ComboBox2.List. rng1.Cells.Value har fået værdien fra "B3" men det er som om at den ikke ser det som en Liste når der kun er en værdi. Skriver jeg eks. Me.ComboBox.Value så kommer værdien ind og så har jeg istedet udfordringer med at få den slettet med ComboBoxX.Clear.
Private Sub ComboBox1_Change() If Val(ComboBox1.Value) = Ark2.Range("A2") Then ActiveWorkbook.Names.Add Name:="CBM2", RefersToLocal:="=Ark2!B2:B10" ' ret som du vil i =Ark2!B2:B10 ComboBox2.RowSource = "CBM2" End If End Sub
Private Sub ComboBox2_Enter() If ComboBox1.Value = "" Then ComboBox2.Clear
Det virker stort set og så har jeg dog fortsat lidt udfordringer med At bruge .RowSource i stedet for .List. Hvis jeg bruger .List kan jeg nemt slette indholdet i en efterfølgende ComboBox når jeg Enter den forgående ComboBox. det kan jeg ikke når jeg bruger RowSource. Sagt på en anden måde så ønsker jeg at slette eventuelle valg i alle efterfølgende ComboBokse hvis man laver ændringer i en af de forgående comboBokse.
Det ser ud til at jeg kan anvende RowSource hvis jeg udskifter ComboBox.Clear med ComboBox.Cut Vil du sende mig et svar så du kan få nogle point? Tak for hjælpen.
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.