#excel #vba
#excel #vba
Вопрос:
У меня есть 5 блесен, связанных с 5 ячейками подряд. Возможно ли, чтобы блесны перестали работать, когда сумма 5 ячеек достигает определенного значения?
т. е. невозможно увеличить какие-либо ячейки дальше, пока вы не уменьшите другую ячейку.
Ответ №1:
Посмотрите, работает ли это, это немного халтурно, но выполняет свою работу. Убедитесь, что вы выполнили все шаги, иначе вы столкнетесь с проблемами.
В вашей рабочей книге добавьте этот код в новый модуль …
Public Sub Spinner1Change()
SpinnerChange "Spinner1"
End Sub
Public Sub Spinner2Change()
SpinnerChange "Spinner2"
End Sub
Public Sub Spinner3Change()
SpinnerChange "Spinner3"
End Sub
Public Sub Spinner4Change()
SpinnerChange "Spinner4"
End Sub
Public Sub Spinner5Change()
SpinnerChange "Spinner5"
End Sub
Sub SpinnerChange(ByVal strSpinnerName As String)
Dim bEnabled As Boolean, strLinkedCell As String, objSheet As Worksheet
Set objSheet = Worksheets("Sheet1")
If Range("rngCurrentValue") > Range("rngMaxValue") Then
strLinkedCell = objSheet.Shapes(strSpinnerName).ControlFormat.LinkedCell
objSheet.Range(strLinkedCell) = objSheet.Range(strLinkedCell) - 1
End If
End Sub
Измените «Sheet1» на название вашего рабочего листа, на котором находятся ваши блесны.
Теперь в вашем рабочем листе …
.. создайте 2 именованных диапазона:
- rngCurrentValue (Связано с ячейкой H2 в моем примере)
- rngMaxValue (Связано с ячейкой D2 в моем примере)
Для ваших спиннеров дайте каждому из них последовательное название, я назвал их Spinner1, Spinner2, Spinner3 и т.д. И привяжите их к нужным ячейкам …
Введите максимальное значение (как показано в ячейке D2), а затем увеличьте его, и это должно привести к уменьшению последнего вращения до его предыдущего значения.
Проверки ошибок как таковой нет, но вы можете справиться с этим самостоятельно, я чувствую, что это справедливо.
если вы получите лучшее решение, не стесняйтесь им воспользоваться. 🙂
Комментарии:
1. Приветствую, босс, я попробую, когда вернусь с работы, и дам вам знать, сработает ли это!!!
2. @JoshAlton Я забыл сказать, и это может быть очевидно, но ячейка rngCurrentValue должна быть суммой всех значений блесны.
3. Еще раз спасибо, я только что это сделал, и, похоже, это работает. Спасибо за скин help!
4. @JoshAlton классный чувак, просто сделай мне одолжение и пометьэто как ответ. Спасибо