1

Я хотел бы узнать, возможно ли заставить Excel работать как некоторые онлайн-калькуляторы, которые я видел. Например:

Основное отличие состоит в том, что они спроектированы таким образом, чтобы каждая «ячейка» в калькуляторе знала, было ли в нее введено значение - тогда она будет условно вычислять свое значение в зависимости от его функциональных отношений с другими (или нет). ,

В этой используется кнопка «Рассчитать», однако есть примеры с живым обновлением в стиле Excel, в случае, если еще недостаточно значений и / или противоречивых значений, они обычно утверждают это, однако это не является существенной функцией (пока ).

Я пытался реализовать подобное в Excel с помощью условных выражений, но обнаружил, что клеточная логика быстро становится слишком сложной. В моем случае это не помогло, так как значения в системе, для которой я решаю (а не выше), могут быть рассчитаны из разных подмножеств входных данных - вы можете сказать, что они «переопределены».

Есть ли в Excel опция или режим, позволяющий быстро и легко создать этот стиль интерфейса?

Кроме того, кто-нибудь построил подобное и хотел бы поделиться вашими трюками?

Это было бы просто для моей собственной производительности (и других, я надеюсь!), Я не ожидаю, что это будет онлайн ...

2 ответа2

2

Это можно сделать следующим образом в Excel Worksheet, используя VB

Мы знаем Объем Куба = Длина * Ширина * Высота

Давайте сделаем калькулятор для этого:

Учитывая любое 3, 4-е значение должно быть найдено

Создать лист Excel

В A1, A2, A3 введите Длина, Ширина, Высота. Оставьте бланк А4 в виде тома А5

Теперь создайте кнопку с помощью панели инструментов и щелкните правой кнопкой мыши кнопку и измените текст на "РАСЧЕТ", чтобы присвоить кнопке необходимое имя.

Теперь щелкните правой кнопкой мыши на кнопке и назначьте макрос этой кнопке.

Sub Button1_Click()

If Range("B1").Value = 0 
Then Range("B1").Value = Range("B5").Value / Range("B3").Value / Range("B2").Value

If Range("B2").Value = 0 
Then Range("B2").Value = Range("B5").Value / Range("B1").Value / Range("B3").Value

If Range("B3").Value = 0 
Then Range("B3").Value = Range("B5").Value / Range("B2").Value / Range("B1").Value

If Range("B5").Value = 0 
Then Range("B5").Value = Range("B1").Value * Range("B2").Value * Range("B3").Value

End Sub
2

Как вы выяснили, сделать это с ячейками листа может быть немного сложнее.

Но это довольно легко сделать с VBA. Код может быть в событии Worksheet_Change, которое можно настроить на срабатывание при изменении любой из четырех ячеек.

Логика проста: если ровно три ячейки имеют значение, определите, какая ячейка пуста, выполните вычисление и поместите результат в эту ячейку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .