VBA将date更改为月份的第一天

每个星期我们都会收到一行新的数据,这些数据被添加到数据列表的顶部(第5行)。 我们只保留每个月的最近一行数据,并删除下面的行,除非是下个月的电子表格示例 (在图像中我需要从下面的四月份删除行)。 问题是date格式化的方式是dd / mm / yyyy,这意味着如果date与前一行不匹配,那么即使月份相同,也不会删除。

到目前为止,我已经得到了在第5行中插入新行的代码,我试图将date更改为本月的第一天(“无效过程或调用”错误),并且我有一个IF如果date匹配,则会删除第6行。

Worksheets("Weekly Ageing Summary").Rows("5:5").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Worksheets("Weekly Ageing Summary").range("B5").Value = DateSerial(Year(Cells("B5")), Month(Cells("B5")), 1) If Worksheets("Weekly Ageing Summary").range("B5").Value = Worksheets("Weekly Ageing Summary").range("B6").Value Then Rows(6).EntireRow.Delete End If 

这可能不是编写代码的最佳逻辑,但我只是VBA的新手,不确定如何做到这一点。

提前致谢 :)

我试过你的示例代码,并得到了与你一样的错误 – 我认为这个问题是你做单元格引用的方式(单元格(“B5”)而不是单元格(5,2))。

尝试这个:

 Worksheets("Weekly Ageing Summary").Range("B5").Value = DateSerial(Year(Cells(5, 2).Value), Month(Cells(5, 2).Value), 1) If Worksheets("Weekly Ageing Summary").Range("B5").Value = Worksheets("Weekly Ageing Summary").Range("B6").Value Then Rows(6).EntireRow.Delete End If 

希望这可以帮助!