Скажем, мы начинаем с:
Таким образом, A1 и B1 имеют константы, а C1 имеет формулу. Поместите этот макрос в область кода рабочего листа:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim A As Range, B As Range, C As Range, AC As Range
Set A = Range("A1")
Set B = Range("B1")
Set C = Range("C1")
Set AC = Union(A, B, C)
With Application
If Intersect(AC, Target) Is Nothing Then Exit Sub
If .WorksheetFunction.CountBlank(AC) <> 1 Then Exit Sub
.EnableEvents = False
If A = "" Then
A = C / B
ElseIf B = "" Then
B = C / A
Else
C = A * B
End If
.EnableEvents = True
End With
End Sub
Затем очистите A1 - C1 (как блок).
Затем введите любые два значения.
Поскольку это код рабочего листа, его очень легко установить и использовать автоматически:
- щелкните правой кнопкой мыши имя вкладки в нижней части окна Excel
- выберите View Code - откроется окно VBE
- вставьте материал и закройте окно VBE
Если у вас есть какие-либо проблемы, сначала попробуйте на пробную версию.
Если вы сохраните книгу, макрос будет сохранен вместе с ней.
Если вы используете версию Excel более поздней, чем в 2003 году, вы должны сохранить файл как .xlsm, а не .xlsx
Чтобы удалить макрос:
- вызвать окна VBE, как указано выше
- очистить код
- закройте окно VBE
Чтобы узнать больше о макросах в целом, смотрите:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
а также
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
Чтобы узнать больше о макросах событий (код листа), см .:
http://www.mvps.org/dmcritchie/excel/event.htm
Макросы должны быть включены, чтобы это работало!