首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新年度报告模板,最好在下一年开始之前

更新年度报告模板,最好在下一年开始之前
EN

Code Review用户
提问于 2019-07-23 22:15:09
回答 1查看 105关注 0票数 3

工作流程是:

  • 复制前一年报告文件夹
  • 更新以下模板
  • 保存

源文件夹和NewYear文件夹中有19个工作簿。每个工作簿都必须保存年底的最终数据( "YTD实际“页面),以及重置和准备新年的月表。

不要害怕骂我或冒犯我。我对此显然是新手,必须有更好的方法来做。

代码语言:javascript
复制
Private Sub Workbook_Open()

Dim CYR As Variant, PYR As Integer, InputError As Integer, SourceFolder As String, NewYearFolder As String, NewYearFiles As String, oFSO As Object, oNewYearFolder As Object, oNewYearFiles As Object, filename As Variant

CYR = InputBox("Input New Year in 4 Digit Format. XXXX")
    On Error GoTo ErrorCheck

PYR = CYR - 1
SourceFolder = "C:\Users\nick.hasler\Desktop\Daily Service Reporting\" & PYR & " Service Report - Daily"
NewYearFolder = "C:\Users\nick.hasler\Desktop\Daily Service Reporting\" & CYR & " Service Report - Daily"
NewYearFiles = Dir(NewYearFolder & "\" & "*.xl??")

Application.ScreenUpdating = False
Application.EnableEvents = False

If Dir(NewYearFolder, vbDirectory) = "" Then

    Set oFSO = CreateObject("Scripting.FileSystemObject")
    oFSO.copyFolder SourceFolder, NewYearFolder

    MsgBox "New Year Folder Created"

    Set oNewYearFolder = oFSO.GetFolder(NewYearFolder)
    Set oNewYearFiles = oNewYearFolder.Files

    For Each filename In oNewYearFiles
        If filename Like "*" & PYR & "*" Then
          NewFileName = Replace(filename, PYR, CYR)

          Name filename As NewFileName
        End If
    Next filename

    MsgBox "New Year Files Renamed"
    MsgBox "The Next Step Will Take a Few Moments"

    NewYearFiles = Dir(NewYearFolder & "\" & "*.xl??")

    Do While NewYearFiles <> ""
        Workbooks.Open (NewYearFolder & "\" & NewYearFiles)

        Workbooks(NewYearFiles).Sheets(PYR & " YTD").Select
        Workbooks(NewYearFiles).Sheets(PYR & " YTD").Name = CYR & " YTD"
        Workbooks(NewYearFiles).Worksheets("2019 Actual").Select
        Workbooks(NewYearFiles).Worksheets(PYR & " Actual").Copy Before:=Workbooks(NewYearFiles).Worksheets(CYR & " YTD")
        Workbooks(NewYearFiles).Worksheets(PYR & " Actual (2)").Select
        Workbooks(NewYearFiles).Worksheets(PYR & " Actual (2)").Name = CYR & " Actual"
        Workbooks(NewYearFiles).Worksheets(PYR & " Actual").Select
        Workbooks(NewYearFiles).Worksheets(PYR & " Actual").Cells.Select
        Selection.Copy
        Workbooks(NewYearFiles).Worksheets(PYR & " Actual").Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False

        'Monthly Reporting
        Workbooks("Create New Year").Worksheets("Monthly Reporting").Range("A5:AH16").Copy _
            Destination:=Workbooks(NewYearFiles).Worksheets("Monthly Reporting").Range("A5:AH16")

        Workbooks("Create New Year").Worksheets("Monthly Reporting").Range("H76:AH88").Copy _
            Destination:=Workbooks(NewYearFiles).Worksheets("Monthly Reporting").Range("H76:AH88")

            Workbooks(NewYearFiles).Worksheets("Monthly Reporting").Range("A1:AH90").Replace What:="qqq", Replacement:="="

            Workbooks(NewYearFiles).Worksheets("Monthly Reporting").Range("A1:J4").Replace What:=PYR, Replacement:=CYR

        'Daily Reporting
        Workbooks("Create New Year").Worksheets("Daily Reporting").Range("A2:AG18").Copy _
            Destination:=Workbooks(NewYearFiles).Worksheets("Daily Reporting").Range("A2:AG18")

            Workbooks(NewYearFiles).Worksheets("Daily Reporting").Range("A1:AG18").Replace What:="qqq", Replacement:="="

            Workbooks(NewYearFiles).Worksheets("Daily Reporting").Range("A3:AG3").Replace What:="Year", Replacement:=CYR

        'January
        Workbooks("Create New Year").Worksheets("January").Range("A7:AFH46").Copy _
            Destination:=Workbooks(NewYearFiles).Worksheets("January").Range("A7:AFH46")

            Workbooks(NewYearFiles).Worksheets("January").Range("A1:AFH7").Replace What:=PYR, Replacement:=CYR

            Workbooks(NewYearFiles).Worksheets("January").Range("ADZ7:AFH7").Replace What:="PYear", Replacement:=PYR

            Workbooks(NewYearFiles).Worksheets("January").Range("A2:AFH46").Replace What:="qqq", Replacement:="="

        'February
        Workbooks("Create New Year").Worksheets("February").Range("A7:AFH46").Copy _
            Destination:=Workbooks(NewYearFiles).Worksheets("February").Range("A7:AFH46")

            Workbooks(NewYearFiles).Worksheets("February").Range("A1:AFH7").Replace What:=PYR, Replacement:=CYR

            Workbooks(NewYearFiles).Worksheets("February").Range("ADZ7:AFH7").Replace What:="PYear", Replacement:=PYR

            Workbooks(NewYearFiles).Worksheets("February").Range("A2:AFH46").Replace What:="qqq", Replacement:="="

        'March
        Workbooks("Create New Year").Worksheets("March").Range("A7:AFH46").Copy _
            Destination:=Workbooks(NewYearFiles).Worksheets("March").Range("A7:AFH46")

            Workbooks(NewYearFiles).Worksheets("March").Range("A1:AFH7").Replace What:=PYR, Replacement:=CYR

            Workbooks(NewYearFiles).Worksheets("March").Range("ADZ7:AFH7").Replace What:="PYear", Replacement:=PYR

            Workbooks(NewYearFiles).Worksheets("March").Range("A2:AFH46").Replace What:="qqq", Replacement:="="

        'April
        Workbooks("Create New Year").Worksheets("April").Range("A7:AFH46").Copy _
            Destination:=Workbooks(NewYearFiles).Worksheets("April").Range("A7:AFH46")

            Workbooks(NewYearFiles).Worksheets("April").Range("A1:AFH7").Replace What:=PYR, Replacement:=CYR

            Workbooks(NewYearFiles).Worksheets("April").Range("ADZ7:AFH7").Replace What:="PYear", Replacement:=PYR

            Workbooks(NewYearFiles).Worksheets("April").Range("A2:AFH46").Replace What:="qqq", Replacement:="="

        'May
        Workbooks("Create New Year").Worksheets("May").Range("A7:AFH46").Copy _
            Destination:=Workbooks(NewYearFiles).Worksheets("May").Range("A7:AFH46")

            Workbooks(NewYearFiles).Worksheets("May").Range("A1:AFH7").Replace What:=PYR, Replacement:=CYR

            Workbooks(NewYearFiles).Worksheets("May").Range("ADZ7:AFH7").Replace What:="PYear", Replacement:=PYR

            Workbooks(NewYearFiles).Worksheets("May").Range("A2:AFH46").Replace What:="qqq", Replacement:="="

        'June
        Workbooks("Create New Year").Worksheets("June").Range("A7:AFH46").Copy _
            Destination:=Workbooks(NewYearFiles).Worksheets("June").Range("A7:AFH46")

            Workbooks(NewYearFiles).Worksheets("June").Range("A1:AFH7").Replace What:=PYR, Replacement:=CYR

            Workbooks(NewYearFiles).Worksheets("June").Range("ADZ7:AFH7").Replace What:="PYear", Replacement:=PYR

            Workbooks(NewYearFiles).Worksheets("June").Range("A2:AFH46").Replace What:="qqq", Replacement:="="

        'July
        Workbooks("Create New Year").Worksheets("July").Range("A7:AFH46").Copy _
            Destination:=Workbooks(NewYearFiles).Worksheets("July").Range("A7:AFH46")

            Workbooks(NewYearFiles).Worksheets("July").Range("A1:AFH7").Replace What:=PYR, Replacement:=CYR

            Workbooks(NewYearFiles).Worksheets("July").Range("ADZ7:AFH7").Replace What:="PYear", Replacement:=PYR

            Workbooks(NewYearFiles).Worksheets("July").Range("A2:AFH46").Replace What:="qqq", Replacement:="="

        'August
        Workbooks("Create New Year").Worksheets("August").Range("A7:AFH46").Copy _
            Destination:=Workbooks(NewYearFiles).Worksheets("August").Range("A7:AFH46")

            Workbooks(NewYearFiles).Worksheets("August").Range("A1:AFH7").Replace What:=PYR, Replacement:=CYR

            Workbooks(NewYearFiles).Worksheets("August").Range("ADZ7:AFH7").Replace What:="PYear", Replacement:=PYR

            Workbooks(NewYearFiles).Worksheets("August").Range("A2:AFH46").Replace What:="qqq", Replacement:="="

        'September
        Workbooks("Create New Year").Worksheets("September").Range("A7:AFH46").Copy _
            Destination:=Workbooks(NewYearFiles).Worksheets("September").Range("A7:AFH46")

            Workbooks(NewYearFiles).Worksheets("September").Range("A1:AFH7").Replace What:=PYR, Replacement:=CYR

            Workbooks(NewYearFiles).Worksheets("September").Range("ADZ7:AFH7").Replace What:="PYear", Replacement:=PYR

            Workbooks(NewYearFiles).Worksheets("September").Range("A2:AFH46").Replace What:="qqq", Replacement:="="

        'October
        Workbooks("Create New Year").Worksheets("October").Range("A7:AFH46").Copy _
            Destination:=Workbooks(NewYearFiles).Worksheets("October").Range("A7:AFH46")

            Workbooks(NewYearFiles).Worksheets("October").Range("A1:AFH7").Replace What:=PYR, Replacement:=CYR

            Workbooks(NewYearFiles).Worksheets("October").Range("ADZ7:AFH7").Replace What:="PYear", Replacement:=PYR

            Workbooks(NewYearFiles).Worksheets("October").Range("A2:AFH46").Replace What:="qqq", Replacement:="="

        'November
        Workbooks("Create New Year").Worksheets("November").Range("A7:AFH46").Copy _
            Destination:=Workbooks(NewYearFiles).Worksheets("November").Range("A7:AFH46")

            Workbooks(NewYearFiles).Worksheets("November").Range("A1:AFH7").Replace What:=PYR, Replacement:=CYR

            Workbooks(NewYearFiles).Worksheets("November").Range("ADZ7:AFH7").Replace What:="PYear", Replacement:=PYR

            Workbooks(NewYearFiles).Worksheets("November").Range("A2:AFH46").Replace What:="qqq", Replacement:="="

        'December
        Workbooks("Create New Year").Worksheets("December").Range("A7:AFH46").Copy _
            Destination:=Workbooks(NewYearFiles).Worksheets("December").Range("A7:AFH46")

            Workbooks(NewYearFiles).Worksheets("December").Range("A1:AFH7").Replace What:=PYR, Replacement:=CYR

            Workbooks(NewYearFiles).Worksheets("December").Range("ADZ7:AFH7").Replace What:="PYear", Replacement:=PYR

            Workbooks(NewYearFiles).Worksheets("December").Range("A2:AFH46").Replace What:="qqq", Replacement:="="

        Application.CutCopyMode = False

        Workbooks(NewYearFiles).Save
        Workbooks(NewYearFiles).Close
        NewYearFiles = Dir()
    Loop

    MsgBox "New Year Files Reset"

Else
    InputError = 1
End If


ErrorCheck:
If CYR = "" Then
    MsgBox "You did not input a valid year"
End If

If InputError = 1 Then
    MsgBox "That Year Already Exist. Delete the folder if you wish to replace it."
End If

Application.ScreenUpdating = True
Application.EnableEvents = True

'Workbooks("Create New Year").Save
'Workbooks("Create New Year").Close

End Sub
EN

回答 1

Code Review用户

发布于 2019-07-24 16:44:59

票数 4
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/224766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档