/ / Не може да се промени стойността на плъзгача до 0 - excel, form, vba, slider

Не може да се промени стойността на плъзгача до 0 - excel, form, vba, слайдер

Така че имам и формуляр с някои плъзгачикато съответни отметки, които забраняват или активират всеки плъзгач. Когато деактивирам плъзгача, искам да променя стойността му на 0, но отказва да сътрудничи и няма да променя стойността си.

Аз го отстраних, наблюдавах плъзгача Value промяната на свойствата за стойности, по-големи от 0, проверява дали контролите в sliders масив съответства на контролите, за които възнамерявах да ги проверя, провери дали Min имотът е 0 и дори го променя на абсурдно малък брой при случайност, че не е "включен", така че не мога да си представя защо се държи така.

Това всъщност не е много важно, тъй като стойността на плъзгача не се брои, когато тя е изключена, но това ме подслушва, затова ще оценя всякаква представа за това.

Private Sub UpdateSliderComponents(i As Integer)
Dim enable As Boolean
enable = Not daysOff(i).Value

If Not enable Then
sliders(i).Value = 0
End If
labels(i).Enabled = enable
sliders(i).Enabled = enable
End Sub

Отговори:

0 за отговор № 1

Опитах се да направя обикновена форма тук, в опит да възпроизведа случая ви. Но не е същото и контролите работят добре.

Също така имайте предвид, че Min и Max не са наистина това, което смятате за 0 и 100. Това е диапазонът на стойностите. Стойността е друг имот. Мога да определя Мин като 150 и Макс като 300. Стойност 150 сега представляват нулева точка (0%) на плъзгача и 300 представляват така наречените 100% в този случай. Ако сте задали Мин да бъде 150 и след това се опита да зададете стойността на 0, това ще доведе до грешка. (Грешка при изпълнение 380, не може да зададе свойството Value. Невалидна стойност на имота.)

въведете описанието на изображението тук

Option Explicit

Public Sub Respond(ByRef i As Integer)
Dim enable As Boolean

Select Case i
Case 0
enable = False
Case 1
enable = True
End Select

If Not enable Then
ScrollBar1.Value = 150 "--represents zero %
ScrollBar1.BackColor = &H8000000F
Else
ScrollBar1.Value = 250 "--represent some value in the range
ScrollBar1.BackColor = &H80FF80
End If

Debug.Print ScrollBar1.Value
ScrollBar1.Enabled = enable

End Sub

Отбележете и преместете слайдовете до 250 (някои стойности):

въведете описанието на изображението тук

Деактивирайте и преместете слайдовете до 150 (нула):

въведете описанието на изображението тук