如何从vba中的不同工作表中动态读取数据(日期格式)?

时间:2017-11-23 17:55:39

标签: vba excel-vba excel

我在一张表中有一些格式为 WYYYYMMDD 的数据行。我需要根据工作表周动作进行累进销售计算。实际上,由内容 WYYYYMMDD 组成的数据行从一个季节移动到另一个季节,就像明智的多个数据行一样。例如本周需要从SPRING转移到SUMMER。

主要目标是我们试图转移到 SUMMER (本赛季的第一周)最初属于 SPRING 但由于业务原因,需要将其移至 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

任何帮助/建议都会很棒。?

0 个答案:

没有答案