gpt4 book ai didi

excel - 进行更改时自动更新工作表 - VBA Excel

转载 作者:行者123 更新时间:2023-12-04 21:20:17 25 4
gpt4 key购买 nike

我努力找出这个逻辑,所以任何帮助将不胜感激!

我有一张包含名称和日期的表格,在每一行(在示例列 D 到 F 中)它需要找到最大的日期,然后将日期添加到一列(列 C)。我可以让它在单个测试行上工作,但是当任何行发生变化时我需要它工作。

  B           C            D           E           F
Name Due Date Date 1 Date 2 Date 3

Dave 01-01-20 01-01-14 01-01-17
Sarah 01-01-21 01-02-11 01-02-15 01-02-18

我到目前为止的代码是:
LastRow = wsCB.Cells(Rows.Count, "C").End(xlUp).Row
rowcount = 12

Max_date = Application.WorksheetFunction.Max(wsCB.Range(wsCB.Cells(rowcount, 5), wsCB.Cells(rowcount, 10)))

Max_date = CDate(Max_date)

DueDate = DateAdd("yyyy", 3, Max_date)

wsCB.Cells(12, 4) = DueDate

我已将其设置为调用 Worksheet_Change。我尝试了各种尝试使用 xlup 的循环,但我不确定这是正确的方法,因为当用户为某人输入新日期时,我需要更新该值。我不太清楚如何将这个单行示例扩展到整个工作表。

数据不会很大,但是会有 5 张这样的表格,每张表格最多有 70 个名字。

我对 VBA 还是很陌生,所以任何建议都会很有帮助!

最佳答案

以下 VBA 代码应该可以达到您想要的结果:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Column
Case 4, 5, 6 'if user entered data in columns D to F
Max_date = Application.WorksheetFunction.Max(Range(Cells(Target.Row, 4), Cells(Target.Row, 6)))
'get the max value in row from column D to F (4 to 6)
Max_date = CDate(Max_date)

DueDate = DateAdd("yyyy", 3, Max_date)

Cells(Target.Row, 3) = DueDate
End Select
End Sub

关于excel - 进行更改时自动更新工作表 - VBA Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53169220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com