获取数据基于月份(名称)excel vba

我目前正在为我们的报告创build一个模板。 我想做一些自动化。

我有一个源表,我称之为“KPISource”(数据源在共享点,因此这是一个表)。 在第一列中,我希望获取当前月份和上个月的数据。

基本上,如果是当前月份,则将数据放入“八月”栏。 如果date是前一个月,那么它也会把数据放在“七月”。

以下是我们模板的截图:

在我的来源表中,列是date,解决票(生产力),YTD,票重开率(质量),老化<5天(质量),年至今(老化<5天)老化> 5天(质量)老化> 5天),客户满意度(YTD)(客户满意度)

目前这里是我的代码,但没有输出显示。 这是我想要的代码,如果有第1列(KPISource)中的前一个date,那么它将在KPI.Cells(6,4).Value(Tickets Solved“July”)中具有值。

Sub OperationalKPI() Dim KPI As Worksheet Set KPI = Sheets("OperationalKPI") Dim KPISource As Worksheet Set KPISource = Sheets("KPISource") mPrevious = Format(DateAdd("m", -1, Date), "mmmm") mCurrent = Format(Date, "mmmm") lastrow = KPISource.Cells(Rows.Count, 1).End(xlUp).Row For x = 2 To lastrow If mPrevious = KPISource.Cells(x, 1) Then KPI.Cells(6, 4).Value = KPISource.Cells(x, 2).Value End If Next x End Sub 

这个问题根据你的反馈意见是排队的

 If mPrevious = KPISource.Cells(x, 1) Then 

mPrevious是一个包含月份名称的string,例如“July”,但是KPISource.Cells(x,1)包含一个date,所以两者永远不会相等。

将该行更改为:

 If mPrevious = Format(KPISource.Cells(x, 1),"mmmm") Then 

这将使两个项目的string与他们的月份的名称和If应该find匹配。