首页 文章

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

提问于
浏览
0

大家早,

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

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

如果表中列出的任何人有假期,日历上还会有一些条件格式突出显示当天 . 点 . 我喜欢把国家放在日历上方,以便它可以做一些精炼,我不知道我还能尝试什么,只是显示指定国家的银行假期而不是所有这些 . 有人能指出我正确的方向吗?

非常感谢提前!
enter image description here

enter image description here

1 回答

  • 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来获取国家名称,这将起作用

相关问题