Excel动态日历:每个国家的银行假期

时间:2017-03-10 10:22:20

标签: excel calendar

早上好,

目前在项目中遇到一些问题。

我有2张,其中一张列出了十几个国家的银行假期表(例如英国,假日,例如,新年,日期,例如01/01/2017),第二张是12个月的日历。 selectedCell是假日表右侧的空白单元格,一小段VB拉出当前在日历上选择的日期。然后,我得到了一个索引公式,列出所选日期的假期,然后显示在日历的右侧。

如果表中列出的任何人都有假期,日历上还会有一些条件格式突出显示当天。 点。我希望将国家/地区放在日历上方的下拉列表中 它可以做一些改进,我不知道我还能尝试什么,只是显示指定国家的银行假期而不是所有。有人能指出我正确的方向吗?

非常感谢! enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

Sub getdates()
Dim dts As Range
Dim cntry As Range
Dim ctry As String
Dim dt As Variant
Dim cell1 As Range
Dim cell2 As Range
Sheets("Holidays").Range("G8:I100").ClearContents

dt = Sheets("Holidays").Range("I4")
ctry = Sheets("Holidays").Range("I5")
lrow = Sheets("Holidays").Range("A2:A" & Rows.Count).End(xlDown).Row
Set dts = Sheets("Holidays").Range("C2:C" & lrow)
Set cntry = Sheets("Holidays").Range("A2:A" & lrow)
i = 8
For Each cell1 In cntry
If cell1.Value = ctry Then
For Each cell2 In dts
If (cell2.Value = dt) And (cell2.Offset(0, -2).Value = ctry) Then
Sheets("Holidays").Range("G" & i).Value = cell2.Offset(0, -2).Value
Sheets("Holidays").Range("H" & i).Value = cell2.Offset(0, -1).Value
Sheets("Holidays").Range("i" & i).Value = cell2.Offset(0, 2).Value
i = i + 1
End If
Next cell2
End If
Next cell1
Sheets("Holidays").Range("G8:I100").RemoveDuplicates &_
Columns:=Array(1, 2, 3), Header:=xlNo
End Sub

将此子例程添加到您的代码中,并在您添加的if条件中的选择更改事件中调用它。

然后添加一个组合框创建一个列表值范围并在组合框中引用它从链接的单元格获取值,通过使用列表框值将offseting到单元格i5获取国家名称,这将起作用