Label VBA
5 отговора
159 прегледа
Label VBA
В UserForm1 имам Label1,Label2 ............ Label258
Как с брояч на редове може да посоча етикета,възможно ли е?
For BrRed= 1 to 258
Label ??? BrRed = Sheet1.Cells(,[1])
Next BrRed
Благодаря предварително.
Как с брояч на редове може да посоча етикета,възможно ли е?
For BrRed= 1 to 258
Label ??? BrRed = Sheet1.Cells(,[1])
Next BrRed
Благодаря предварително.
Re: Label VBA
Абе, не знам дали въобще е възможно, но ми се струва, че не може да се ползва по този начин брояч.
Съвета ми е - изчисти лейбълите, и направи нови с еднакво име, и индексирани. Т.е. Първия лейбъл му даваш име LabelBrRed, и индекс (Index) = 0. После го маркираш, натискаш Ctrl-C (Copy), и после колкото ти трябва пъти Ctrl-V (Paste), всеки следващ появил се лейбъл ще е със същото име, но със следващ индекс.
В кода ползваш така:
Т.е. това "s" в случая е брояча, и сложено в скобки след името на лейбъла - означава неговия индекс. Само че индексирането е от 0, а не от 1, затова при правене на такива цикли трябва да го имаш в предвид.
Съвета ми е - изчисти лейбълите, и направи нови с еднакво име, и индексирани. Т.е. Първия лейбъл му даваш име 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, затова при правене на такива цикли трябва да го имаш в предвид.
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.
Какво пропускам.



Създавам 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.
Какво пропускам.
Re: Label VBA на Вниманието на Щирлиц
Ами, то проблема не е при теб, а при мен.
Не става дума за TabIndex, а за Index. Обаче не знам защо, сега като пуснах една форма, и натраках лейбълите - не виждам това свойство. Както излиза, във VBA изобщо няма свойство Index, а аз не съм знаел.
Разликите във VB и VBA не са малко. Ще трябва да попрочетем още неща по въпроса.
Ето какво сътворих сега на VB, което е удобно и за предишния ти вариант със именуваните Label1, Label2, Label3 и т.н....
ама пак само във VB работи. ;о(
Хайде да потърсим инфо, пък пак ще мислим...
Не става дума за 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 работи. ;о(
Хайде да потърсим инфо, пък пак ще мислим...