1) 我的VBA是放在Macro.xlsm中,想設定一個t值,並且放在"Macro.xlsm"的Worksheets("VBA").Range("B31")中,
並且將t值代入這個路徑裡 Path = "D:\蘆竹共用\倉儲共用\1_理貨.庫存\網路訂單\" & "網路訂單_" & xi & "\" & "網路訂單_" & t & "\"
儲存格的值是一個日期的text,例如:20190906,它是資料夾命名的一部份,我常常會需要找幾天前的資料,可以直接在儲存格中修改就比較方便,
但在執行程式時,會出現對話框告知,此處需要一個物件,我猜想是否 Dim t As String這個宣告錯誤??還是有其它問題?
以下是程式的一部份:
Sub EX()
Dim mFile As String, xmFile As String, rFile As String, 目的檔 As Workbook, 來源檔 As Workbook, m來源檔 As Workbook, PO來源 As Workbook, xPO來源 As Workbook, i As String, xi As String, t As String
Application.Calculation = xlManual '手動計算
Application.ScreenUpdating = False
xi = Format(Date, "YYYY.MM") '日期年月設定作為工作表的變數
Set t = Workbooks(Workbooks("Macro.xlsm").Worksheets("VBA").Range("B31").Value) 't變數指定儲存格為檔案名
'**********************目的檔資料夾 統昶驗收(有公式)
Path = "D:\0_自訂表單\D統昶驗收\" '目的檔
xmFile = Dir(Path & "*統昶驗收*.XLSX") '來源檔名
Do While xmFile <> ""
Application.DisplayAlerts = False '一般提警示訊息關閉
Workbooks.Open filename:=Path & xmFile
Set 目的檔 = Workbooks(Dir(Path & "*統昶驗收*.XLSX"))
'**********************目的檔 清除之前貼上的資料....
目的檔.Activate
Range("訂單.比菲多統昶").ClearContents
Range("比菲多驗收").ClearContents
xmFile = Dir
Loop
'**********************開啟訂單資料
Path = "D:\蘆竹共用\倉儲共用\1_理貨.庫存\網路訂單\" & "網路訂單_" & xi & "\" & "網路訂單_" & t & "\" '訂單資料夾
mFile = Dir(Path & "*統昶*" & ".XLS") '來源檔
Do While mFile <> ""
Application.DisplayAlerts = False '一般提警示訊息關閉
Workbooks.Open filename:=Path & mFile
複製代碼
2) 我有個bat檔用來自動備份檔案,我想把紅色字改為可以自動帶出當年及當月,當年度及月份改變時,就不用手動修改,請問這個變數要怎麼在bat中修改?
a) 108年(台灣年度)及西元年(2019年)的寫法
b) 自動依月份的變數寫法,例:9月、12月.....
@echo off
set hour=%time: =0%
set File=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
echo %File%
xcopy "D:\蘆竹共用\倉儲共用\1_理貨.庫存\比菲多\108年比菲多\蘆竹所過允收回廠單\*9月.xlsx" "D:\0_自訂表單\Backup\倉儲共用%File%\比菲多\" /D /Y作者: 准提部林 時間: 2019-9-11 10:11
t As String
Set t = Workbooks(Workbooks("Macro.xlsm").Worksheets("VBA").Range("B31").Value) 't變數指定儲存格為檔案名
@echo off
set hour=%time: =0%
set File=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
echo %File%
xcopy "D:\蘆竹共用\倉儲共用\1_理貨.庫存\比菲多\108年比菲多\蘆竹所過允收回廠單\*9月.xlsx" "D:\0_自訂表單\Backup\倉儲共用%File%\比菲多\" /D /Y