Vba 根据输入的月份更改其他单元格的值

Vba 根据输入的月份更改其他单元格的值,vba,excel,Vba,Excel,因此,我有一个Excel文件,其中有两张表,分别是年度表和月度报告表,是否可以根据今天的日期或当前日期更改月度报告表的F21:F29的值,例如今天是2月,将放在月报表的F21:F29上的数据是年报表的二月列或F21:F29,当当前月份是三月时,将放在月报表的F21:F29上的数据是年报表的三月列或G21:G29 谢谢大家,GoodBless使用索引匹配。只要中包含月份的单元格都被格式化为日期,它就可以工作在“月报表”工作表的代码窗格中放置以下代码: Private Sub Worksheet_C

因此,我有一个Excel文件,其中有两张表,分别是年度表和月度报告表,是否可以根据今天的日期或当前日期更改月度报告表的F21:F29的值,例如今天是2月,将放在月报表的F21:F29上的数据是年报表的二月列或F21:F29,当当前月份是三月时,将放在月报表的F21:F29上的数据是年报表的三月列或G21:G29


谢谢大家,GoodBless使用索引匹配。只要中包含月份的单元格都被格式化为日期,它就可以工作

在“月报表”工作表的代码窗格中放置以下代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.address = "$G$3" Then Range("F21:F29").Value = Worksheets("YEAR sheet").Range("D21:D29").Offset(, Month(Range("G3"))).Value
End Sub

根据您给定的屏幕截图,将下面的公式放入
F21
月报表的
单元格中,然后根据需要向下拖动

=IFERROR(INDEX('YEAR Sheet'!$E$21:$P$32,ROWS($E$21:$E21),MATCH(LEFT($F$3,3),'YEAR Sheet'!$E$19:$P$19,0)),"")

注意:如果数据来自
年表中的不同单元格
,则必须修改公式以调整威尔数据范围。

是的,这是可能的。最好放上你的数据截图。你的方法是什么?密码?到目前为止你的代码是什么?公式?你想到了什么?您被困在哪里了?女士/先生@harun24hr这是我对第1页和第2页的屏幕截图。@rabal看到我下面的答案,并告诉我它是否对您有效?@harun24hr您好先生:)我有一个关于excell的程序的后续问题…,您的代码有效,现在,我想获得所选月份的活动总计。例如,您选择的是2月。系统将自动添加2月总计和1月总计。相同情况下,3月。只有前一个月将添加到总计中。请参阅更新的帖子。。非常感谢。天哪,女士/先生,您能在这里演示一下这个索引匹配是如何工作的吗?Thank=INDEX(所需数据匹配的列(中月份的查找单元格,查找数据的列,0))零是因为需要精确匹配。你也可以在接下来的几个月里使用IFERRO,这样他们就不会显示错误了,欢迎你。如果这是您将采用的解决方案,那么您可能希望将答案标记为已接受。谢谢您好先生:)我有一个关于excell程序的后续问题,您的代码有效,现在,我想获得所选月份的活动总数。例如,您选择的是2月。系统将自动将2月的总数和1月的总数相加。3月的情况相同。,只有前一个月会被加到总数中,见更新后的帖子。。非常感谢。上帝保佑。@rabal那么你必须使用
sumifs()
函数。通过google drive或dropbox共享您的示例excel文件,然后在此评论中提供下载链接。我会帮你的。这是可下载的链接,先生。它会提示请求访问。请与公众分享。再见,先生。已看到更新的文件。请检查您的gmail以了解一些问题。多谢各位