文森 發問時間: 電腦與網際網路程式設計 · 4 個月前

VBA問題,每週要更新前一週資料的語法請教。?

大家好,我剛開始學寫VBA,目前碰到一個問題

我每週一要更新前一週五天的檔案,因為來源檔名是以日期命名,遇假日沒有檔案,

變成我的程式只能切成每週一段,碰到每月9日以內跟10日以上的日期還得拆兩段,

不知道有沒有比較有效率的語法,感謝大家!

註:

1.來源檔名為「每日彙總表20190701」、「每日彙總表20190702」....(依此類推)

2.目的檔名為「手續費收入【單月彙總】統計表(2019年7月)_單日、單月_月報整理」...(每月一個檔)

3.要做的事是將來源檔案中某欄位資料複製貼至目的檔中。

我的程式內容大致如下:

Sub 更新週報701_705()

Dim i As Integer, r As String, m As String

For i = 1 To 5 '(週報日期)

r = "07" '(每日彙總表月份)

m = "7" '(每月彙總表月份)

'開啟每日彙總表,複製D5:F76區塊資料

Workbooks.Open Filename:="D:\TL工作區\每日彙總表2019" & r & "0" & i & ".xls"

Sheets(1).Select

Range("D5:F76").Select

Selection.Copy

'回原單月彙總表,貼至D5:F76

Windows("手續費收入【單月彙總】統計表(2019年" & m & "月)_單日、單月_月報整理").Activate

Sheets(i & "日").Select

Range("D5:F76").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Next

End Sub

1 個解答

評分
  • 4 個月前
    最佳解答

    增加一個資料夾存放已經更新過的..未更新的放在同目錄下

    以下會把同目錄下的.xlsx都複製到目的地

    Sub get_file()

    DirPath = ThisWorkbook.Path

    fs = Dir(DirPath & "\*.xlsx")

    Do Until fs = ""

    r = r + 1

    FilNm = DirPath & "\" & fs

    Workbooks.Open FilNm

    shx = ActiveWorkbook.Name

    ''====步驟

    ''====

    Windows(shx).Activate

    ActiveWorkbook.Close False

    fs = Dir

    Loop

    End Sub

    ''資料來源參考http://forum.twbts.com/viewthread.php?tid=426

    • 文森4 個月前檢舉

      感謝,後來也有看到這個論壇的資料,大概知道要怎麼寫了:D

還有問題?馬上發問,尋求解答。