我在一张表中有一些格式为 WYYYYMMDD 的数据行。我需要根据工作表周动作进行累进销售计算。实际上,由内容 WYYYYMMDD 组成的数据行从一个季节移动到另一个季节,就像明智的多个数据行一样。例如本周需要从SPRING转移到SUMMER。
主要目标是我们试图转移到 SUMMER (本赛季的第一周)最初属于 SPRING 的一周(赛季的最后一周) strong>但由于业务原因,需要将其移至 SUMMER 。这是一个财政年度,但未来几年可能会增加周动作,这也是我们需要动态读取这些数据的原因。当我们为 SUMMER 季节进行累进销售计算时,由于该周属于 SPRING ,因此不包括在 SUMMER 中。我有累积周(渐进)功能,如下所述。
Private Function getCumulativeWeeks(Optional intParent As Integer = 1) As Variant
Dim objMember As Variant
Dim intWeekGroup As Integer
Dim strWeeks() As String
Dim strError As String
Dim i As Integer, n As Integer
Dim booSkip As Boolean
On Error GoTo ErrorRoutine
'get list of cumulative weeks
strError = "getting list of cumulative weeks"
i = 0
intWeekGroup = groupNumberFromName("Week")
uncheckDimension
checkChildrenOfMember intParent
For Each objMember In objMembers.Items
With objMember
If .Group = intWeekGroup Then
If .Number <= intCurrentWeek Then
If .Checked Then
ReDim Preserve strWeeks(i) ' Always there
If .Name <> "W20170715" Then
strWeeks(i) = .Name ' Always there
i = i + 1 ' Always there
End If
If .Name = "W20170325" Then
ReDim Preserve strWeeks(i)
strWeeks(i) = "W20170318" 'To include This week in start of SUM2017
i = i + 1
End If
End If ' End Jo
End If
End If
End If
End With
Next
getCumulativeWeeks = strWeeks()
Exit Function
ErrorRoutine:
writeErrorToLog "clsStructure", "getCumulativeWeeks", strError, Err.Number, Err.Description
End Function
我所做的是,我已经将我希望包含在阵列中的那一周硬编码,以包含在 SUMMER 赛季中。同样地,我从 AUTUMN 开始了几周,并包含在 SUMMER 中。而不是这个,我想从不同的表中阅读这几周,并包括在我的阵列中,虽然我将来会有多个星期。
Sheet中存在的数据行如下:
Week Move From Move To W20170318 SPR2017 SUM2017 W20170318 SPR17PH2 SUM17PH1 W20170708 AW2017 SS2017 W20170708 AUT2017 SUM2017 W20170708 AUT17PH6 SUM16PH5 W20170715 AW2017 SS2017 W20170715 AUT2017 SUM2017 W20170715 AUT17PH6 SUM16PH5
任何帮助/建议都会很棒。?