2015-06-02 3 views
0

Я искал, но не смог найти ответ на то, что, по моему мнению, является простым решением. У меня есть несколько строк списка (в основном вопрос «да/нет»), и мне нужен макрос, который изменяет другие ячейки в одной строке в зависимости от того, что выбрано из списка в столбце A. Я предполагаю, что это должно быть событие изменения и я могу делать то, что хочу для одной строки, но не могу понять, как применить ее ко всему столбцу. Это то, что я до сих пор:Один макрос для нескольких строк проверки списка

Private Sub Worksheet_Change(ByVal Target As Range) 

If Target.Address(True, True) = "A2" Then 
    Select Case Target 
     Case "list option one" 
      call Macro1 
     Case "list option 2" 
      'Call Macro2 
     Case Else 
      'Do nothing 
    End Select 
End If 

End Sub 

, очевидно, я не хочу жесткий код каждой строки A3, A4, A5 ...

+0

Предполагая, что он заперт вниз, то вы можете добавить выражение «Если» в другую строку вместо использования макроса, тогда Excel выполнит «триггер» для вас. – indofraiser

+1

Не было бы хорошей альтернативой для определения функций для значений ячеек, которые вы нацеливаете с помощью макросов. Эти функции могут работать так же, как и обычные функции Excel, но, поскольку они написаны в VBA, могут содержать более конкретные функции. В качестве входного параметра вы можете передать значение ячейки в столбце A. – Tom

+0

@indofraiser вы имеете в виду, используя функции excel? Проблема в том, что некоторые из значений будут свободным текстом, и это приведет к удалению функции. – Istha

ответ

1

Попробуйте

Private Sub Worksheet_Change(ByVal Target As Range) 

If Target.Column = 1 Then 
    If Target.Value = True Then 'If target = true (This can be what ever you want) 
     Cells(Target.Row, 2).Value = True 'Then put true on same row but column 2 e.g. B 
    End If 
End If 

End Sub 
+0

Привет, не уверен, что я понимаю, что здесь происходит ... если я хочу, чтобы ячейка в столбце B говорила «N/A», если выбрана опция списка 1, где я помещаю этот код? – Istha

+0

Положите это под листом. Если Target.Value = True Then Изменение выше "True" к значению выбранного из выпадающие в колонке A Cells (Target.Row, 2) .Value = True Change "True" на то, что вы хотите в столбце B, когда оператор IF равен true – 99moorem

+0

, или вы можете изменить If Target.Value = True Затем, если Target.Value <> "" Тогда, если вы хотите иметь какое-либо значение, кроме пустого, пройдете через – 99moorem

Смежные вопросы