工作表中的IF和VLOOKUP更改宏

时间:2017-02-20 09:44:58

标签: excel vba excel-vba

我有一个电子表格,下面的小样本,实际超过100行。

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

我的问题是,当员工离开或加入我添加或删除它们时,我必须不断更改公式的范围。

我所希望的是,有人可以帮我根据B栏,白天或晚上的值添加IF公式。目前,我必须确保过滤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 个答案:

答案 0 :(得分: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