我目前正在为我们的报告创建一个模板。我想做一些自动化的工作。
我有一个源表,我称之为"KPISource“(数据源在sharepoint中,因此这是一个表)。在第一列中,我想要获取具有当前月份和前一个月的数据。
基本上,如果是当月,它会将数据放在“8月”列中。如果日期是前一个月,那么它也会将数据放在“7月”中。

在我的源表中,列是日期、票证解决(生产率)、YTD、票证重开率(质量)、账龄<5天(质量)、YTD (账龄<5天)、账龄>5天(质量)、YTD (账龄>5天)、客户满意度、YTD (客户满意度)
目前这是我的代码,但没有显示输出。这是我正在尝试的代码,如果在第1列(KPISource)中有以前的日期,那么它的值将在KPI.Cells(6,4).Value (票证已解决“7月”)中。
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发布于 2017-08-07 21:03:35
根据您的反馈,问题就在这条线上
If mPrevious = KPISource.Cells(x, 1) Then7月是一个包含月份名称的字符串,例如“mPrevious”,但是KPISource.Cells(x,1)包含日期,因此两者永远不会相等。
将行更改为:
If mPrevious = Format(KPISource.Cells(x, 1),"mmmm") Then这将使两个项都成为字符串,其中包含月份的名称,并且If应查找匹配项。
https://stackoverflow.com/questions/45540969
复制相似问题