2017-02-20 8 views
1

У меня есть таблица, маленький образец ниже, фактический более 100 строк.IF и VLOOKUP в макросе изменения рабочего листа

Timesheet

У меня есть изменения рабочего листа макрос для того, когда номер недели изменяется в B3.

If Target.Address = Range("$B$3").Address Then 

    Range("C5:I7").Formula = "=VLOOKUP($A5,'[NightRota.xlsx]" & Target.Value & "'!$A:$I,C$1,0)" 
    Range("C8:I11").Formula = "=VLOOKUP($A8,'[DayRota.xlsx]" & Target.Value & "'!$A:$J,C$2,0)" 

End If 
End Sub 

Моя проблема заключается в том, что, как сотрудники уходят или присоединиться и я добавить или удалить их, я должен постоянно изменять диапазон для формул.

Что я надеюсь, это то, что кто-то может помочь мне добавить формулу IF в формулу в зависимости от значения в столбце B, день или ночь. В настоящий момент я должен обеспечить, чтобы столбец B был отфильтрован, чтобы обеспечить правильную формулу в правильных ячейках.

Заранее спасибо.

Я имел некоторый успех, это то, что я сейчас

If Target.Address = Range("$C$3").Address Then 

    Range("D5:J91").Formula = "=IF($C5=""Night"",VLOOKUP($A5,'[NightRota.xlsx]" & Target.Value & "'!$A:$I,D$1,0))" 
    Range("D5:J91").Formula = "=IF($C5=""Days"",VLOOKUP($A5,'[DayRota.xlsx]" & Target.Value & "'!$A:$J,D$2,0))" 

End If 

End Sub 

К сожалению, когда я запускаю код второй формула перезаписывает первую формулу, может кто-нибудь помочь мне? Ссылки на ячейки отличаются от первого кода, поскольку я использую полную электронную таблицу, а не только образец, опубликованный на рис.

+1

Лучше, если у вас есть трещина самостоятельно, а затем попросите о помощи. Обратитесь к справочной системе формулы Excel. Если вы используете VBA, я думаю, вы должны быть в порядке. – SJR

+0

Я могу поместить формулу в лист, такой как = IF (C5 = «Ночь», VLOOKUP ($ A5, «[NightRota.xlsx] 23 '! $ A: $ I, C $ 1,0)), который отлично работает, но номер листа «23» меняется с недели на неделю. Я просто не могу разглядеть, как поместить эту формулу в изменение листа, поскольку я получаю ошибку отладки. Я также отредактировал исходное сообщение, поскольку у меня была неправильная ячейка для поиска. – Sherbetdab

ответ

1

Мне удалось разобраться.

Спасибо за ввод, вы узнаете что-то новое каждый день, как они говорят.

If Target.Address = Range("$C$3").Address Then 

    Range("D5:J91").Formula = "=IF($C5=""Night"",VLOOKUP($A5,'[NightRota.xlsx]" & Target.Value & "'!$A:$I,D$1,0),VLOOKUP($A5,'[DayRota.xlsx]" & Target.Value & "'!$A:$J,D$2,0))" 


End If 

End Sub 

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

  • Нет связанных вопросов^_^