18. juli 2006 - 15:19Der er
9 kommentarer og 1 løsning
Burde jeg ikke kunne sætte caption på en knap med vba?
Hejsa,
Burde denne kode ikke virke?
While Len(Range("ButtonLabelHeading").Offset(j, 0).Value) > 1 'iterate through all buttons
For i = 1 To ActiveWorkbook.Worksheets.Count Set objWS = Worksheets(i) For Each objOLE In objWS.OLEObjects Debug.Print objOLE.Name If objOLE.Name = Range("ButtonLabelHeading").Offset(j, 0).Value Then If NewLanguage = "ToEnglish" Then Set bjOLE.Caption = Range("ButtonLabelHeading").Offset(j, 2).Value If NewLanguage = "ToDanish" Then Set bjOLE.Caption = Range("ButtonLabelHeading").Offset(j, 1).Value End If Next Next j = j + 1 Wend
Jeg ved godt at den ikke er efficient med alle traverseringerne, men den burde da ændre knappens caption?
Jeg får fejlen: Object required
Jeg ønsker at traversere et range med navne på alle mine knapper og ændre caption til hhv dansk og engelsk som står i kolonnerne til højre fra range't.
Muchos problemos - si si :o)
Håber at der er en kvik hjerne derude der kan hjælpe mig her i varmen.
Nu ved jeg ikke noget om VBA, så det er muligt jeg tager lidt fejl her - men det du har fat i her, er vel et OLEObject, som ikke umiddelbart har de egenskaber som en Button har. Derfor skal du nok typecaste dit objekt til en Button (eller hvad den type nu hedder).
Som sagt, kender intet til sproget, så kan ske det hverken er nødvendigt eller muligt - men det er mit umiddelbare indskud :)
Hvis knapperne er fra Formularmenuen (forms) så skulle dette kunne gøre det
Dim obj As Object
While Len(Range("ButtonLabelHeading").Offset(j, 0).Value) > 1 'iterate through all buttons
For i = 1 To ActiveWorkbook.Worksheets.Count Set objWS = Worksheets(i) For Each obj In objWS.Buttons Debug.Print obj.Name If obj.Name = Range("ButtonLabelHeading").Offset(j, 0).Value Then If NewLanguage = "ToEnglish" Then obj.Caption = Range("ButtonLabelHeading").Offset(j, 2).Value If NewLanguage = "ToDanish" Then obj.Caption = Range("ButtonLabelHeading").Offset(j, 1).Value End If Next Next j = j + 1 Wend
Knapperne af fra control toolbox - så det er kontrolelementer. Jeg prøvede din kode bak, og den flyver ikke - hvad er modifikationen ift kontrolelementer (hvis muligt)?
While Len(Range("ButtonLabelHeading").Offset(j, 0).Value) > 1 'iterate through all buttons
For i = 1 To ActiveWorkbook.Worksheets.Count Set objWS = Worksheets(i) For Each objOLE In objWS.OLEObjects Debug.Print objOLE.Name If objOLE.Name = Range("ButtonLabelHeading").Offset(j, 0).Value Then If NewLanguage = "ToEnglish" Then objOLE.Object.Caption = Range("ButtonLabelHeading").Offset(j, 2).Value If NewLanguage = "ToDanish" Then objOLE.Object.Caption = Range("ButtonLabelHeading").Offset(j, 1).Value End If Next Next j = j + 1 Wend
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.