У меня есть то, что можно рассматривать как анкету, содержащую до 60 вопросов (все да / нет). Если кто-то ответит «Да», например, в ячейке B1 я знаю, что вопросы в ячейках B6, B9, B22 и B50 будут «НЕТ». Чтобы быть более понятным, если ваш ответ "Вы мужчина?"«Да, тогда я знаю, что все вопросы, предназначенные для женщин, будут №

Я не могу физически ввести формулу в ячейку, так как она будет удалена (перезаписана), когда кто-то ответит на вопрос. Поэтому мне нужна формула в отдельной ячейке, которую я, вероятно, скрою.

Как я могу это сделать?

2 ответа2

0

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

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$A$1" Then
Range("B1").Value = Range("A1").Value
End If

If Target.Address = "$A$2" Then
Range("B2").Value = Range("A2").Value
End If

End Sub

Источник

0

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

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim B1 As Range, OtherBees As Range
    Set B1 = Range("B1")
    Set OtherBees = Range("B6,B9,B22,B50")

    If Intersect(Target, B1) Is Nothing Then Exit Sub
    ActiveSheet.Unprotect
    Cells.Locked = False
    Application.EnableEvents = False
        If UCase(B1.Value) = "YES" Then
            OtherBees.Value = "NO"
            OtherBees.Locked = True
            ActiveSheet.Protect
        Else
            ActiveSheet.Unprotect
            OtherBees.Locked = False
            OtherBees.ClearContents
        End If
    Application.EnableEvents = True
End Sub

Поскольку это код рабочего листа, его очень легко установить и использовать автоматически:

  1. щелкните правой кнопкой мыши имя вкладки в нижней части окна Excel
  2. выберите View Code - откроется окно VBE
  3. вставьте материал и закройте окно VBE

Если у вас есть какие-либо проблемы, сначала попробуйте на пробную версию.

Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel более поздней, чем в 2003 году, вы должны сохранить файл как .xlsm, а не .xlsx

Чтобы удалить макрос:

  1. вызвать окна VBE, как указано выше
  2. очистить код
  3. закройте окно 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

Макросы должны быть включены, чтобы это работало!

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