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

У меня есть ячейка на листе, которая получает значение из другой ячейки. Другими словами, ячейка b1 = a1. Я использую поле ввода, чтобы изменить значение b1, потому что это иногда необходимо. Я не хочу менять ячейку a1 и хочу сохранить формулу в b1, чтобы ячейка b1 обычно получала значение из a1.

Вот мой код:

Private Sub CommandButton_click ()
Dim myValue As Variant
myValue = InputBox ("change cell b1")
Range ("b1"). Value = myValue
End Sub

Это работает, чтобы изменить значение, но удаляет формулу. Я использую кнопку ActiveX, чтобы начать поле ввода. Может ли эта кнопка переопределить формулу для пользовательских целей, но при этом сохранить формулу для будущих вычислений? В 95% случаев мне нужно b1 для получения значения из a1, но когда я перезагружаю его, мне нужно, чтобы формула не удалялась, чтобы ее мог использовать следующий пользователь.

Спасибо

1 ответ1

1

Обычный способ реализовать это с помощью третьей ячейки.

Скажем, мы используем C1 в качестве переопределения:

Если C1 пуст, то используйте значение в A1.
Если C1 не пусто, используйте его.

Итак, в B1 введите:

=IF(C1="",A1,C1)

и иметь обновление макроса C1.

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