В настоящее время im создает модель, в которой мне нужны 2 ячейки, чтобы сохранить фиксированное соотношение, так что когда сумма из двух ячеек всегда равна единице. В этом случае ячейками являются F13 и F14. Чтобы привести пример, если значение F13 изменилось на 0,4, тогда F14 должно стать 0,6. То же самое происходит, если значение off F14 изменяется на 0,2, тогда F13 должно составлять 0,8. Код, который я получил для получения:Сохраняйте фиксированное соотношение между двумя ячейками Excel vba
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Target.Worksheet.Range("F13")) Is Nothing Then
If ActiveCell.Value > 1 Then
MsgBox "input value is larger than 1"
Else
Range("F14").Value = 1 - ActiveCell.Value
Exit Sub
End If
Exit Sub
End If
Exit Sub
If Not Intersect(Target, Target.Worksheet.Range("F14")) Is Nothing Then
If ActiveCell.Value > 1 Then
MsgBox "input value is larger than 1"
Else
Range("F13").Value = 1 - ActiveCell.Value
Exit Sub
End If
Exit Sub
End If
Exit Sub
End Sub
Однако этот код не работает должным образом. Поэтому мой вопрос заключается в том, как мне изменить свой код, чтобы он работал правильно?
«Этот код работает неправильно» - что означает это утверждение? Ошибка кода? Вызывает ли это другое значение, чем вы ожидали? Какое тестирование вы сделали (укажите конкретные примеры переменных значений), какое значение было произведено и что вы ожидали от valud? –
Также - почему у вас так много выходов «exit sub»? Я не могу сказать, какова их общая цель, поскольку, по-видимому, вы можете полностью обработать весь подраздел с ветвящимся логическим путем If/ElseIf и вообще не нуждаться в каких-либо выводах подстановки Exit. Обратите внимание, в частности, что * никогда не будет времени, когда код действительно попадает в «... F14 = Nothing» If Statement - потому что код * всегда * выходит из подпрограммы непосредственно перед этой строкой. –
Итак, вы хотите иметь его так, чтобы сменить один из F13 или F14 автоматически изменил другой? Кроме того, это не похоже на * соотношение * двух ячеек так же, как * разность * между ними. –