我正在为报告创建模板。我想做一些自动化。
我有一个源代码表,我称之为“KPISource”(数据源在sharepoint中,因此这是一个表)。在第一列中,我想获得具有当前月份和上个月的数据。
基本上,如果它是当前月份,它会将数据放在“八月”列中。如果日期是上个月,那么它也会将数据放在“七月”中。
在我的资料单中,列是日期,解决的门票(生产力),YTD,票证重新开放率(质量),老化<5天(质量),YTD(老化&lt; 5天)老化&gt; 5天(质量),年初至今(老化> 5天),客户满意度,年初至今(客户满意度)
目前这是我的代码,但没有输出。这是我正在尝试的代码,如果第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
答案 0 :(得分:1)
根据您的反馈,问题在于
If mPrevious = KPISource.Cells(x, 1) Then
mPrevious是一个包含月份名称的字符串,例如“July”,但KPISource.Cells(x,1)包含一个日期,因此两者永远不会相等。
将行更改为:
If mPrevious = Format(KPISource.Cells(x, 1),"mmmm") Then
这将使两个项目字符串中包含月份名称,而If应该找到匹配项。