Label VBA

5 отговора 159 прегледа
#1

Label VBA

В UserForm1 имам Label1,Label2 ............ Label258
Как с брояч на редове може да посоча етикета,възможно ли е?


For BrRed= 1 to 258

Label ??? BrRed = Sheet1.Cells(,[1])

Next BrRed
Благодаря предварително.

Отговор
в отговор на Учaщ #2

Re: Label VBA

Хайде помагайте иначе двойка.

Отговор
в отговор на Учaщ #3

Re: Label VBA

Абе, не знам дали въобще е възможно, но ми се струва, че не може да се ползва по този начин брояч.

Съвета ми е - изчисти лейбълите, и направи нови с еднакво име, и индексирани. Т.е. Първия лейбъл му даваш име LabelBrRed, и индекс (Index) = 0. После го маркираш, натискаш Ctrl-C (Copy), и после колкото ти трябва пъти Ctrl-V (Paste), всеки следващ появил се лейбъл ще е със същото име, но със следващ индекс.

В кода ползваш така:
For s = 1 To 258

LabelBrRed(s - 1) = Sheet.Cells(,[1])
Next s


Т.е. това "s" в случая е брояча, и сложено в скобки след името на лейбъла - означава неговия индекс. Само че индексирането е от 0, а не от 1, затова при правене на такива цикли трябва да го имаш в предвид.

Отговор
в отговор на Щиpлиц #4

Re: Label VBA на Вниманието на Щирлиц

ЩИРЛИЦ Благодаря за вниманието,но нещо не се получи.

Създавам Label1.С Proprties - Caption преименувам на LabelBrRed.
Copy и Paste създавам нови 2 лейбъла със същото име и.В Tabindex лейбълите са с 0, 1 и 2.

В CommandButton1_Click() записвам :
For i = 1 to 3
labelbrred(i-1)= i
Next
В CommandButton1_Click() LabelBrRed не го разпознава като лейбъл и ми дава грешка Sub or function not defined.

Какво пропускам.




Отговор
в отговор на Учaщ #5

Re: Label VBA на Вниманието на Щирлиц

Ами, то проблема не е при теб, а при мен.

Не става дума за TabIndex, а за Index. Обаче не знам защо, сега като пуснах една форма, и натраках лейбълите - не виждам това свойство. Както излиза, във VBA изобщо няма свойство Index, а аз не съм знаел.

Разликите във VB и VBA не са малко. Ще трябва да попрочетем още неща по въпроса.

Ето какво сътворих сега на VB, което е удобно и за предишния ти вариант със именуваните Label1, Label2, Label3 и т.н....

Private Sub Command1_Click()

Dim ctl As Object
For s = 1 To 5
For Each ctl In Form1
If TypeOf ctl Is Label Then
If ctl.Name = "Label" & Trim(Str(s)) Then ctl.Caption = Str(s)
End If
Next
Next s
End Sub


ама пак само във VB работи. ;о(

Хайде да потърсим инфо, пък пак ще мислим...

Отговор
в отговор на Щиpлиц #6

Re: Label VBA на Вниманието на Щирлиц

Може и други да подскажат как може да стане.

Отговор