返回列表 上一主題 發帖

[發問] 更新日期+假日不更新

回復 15# cowww


    Set xB = Workbooks.Open(ThisWorkbook.Path & "\" & BKN & ".xls", ReadOnly:=True) '唯讀開啟檔案
http://forum.twbts.com/viewthrea ... 2Bonly%3A%3D%2BTrue
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 14# Andy2483

非常感謝Andy2483大大的解答
看看明天是否會成功

明明有寫關閉提示的語法,為何開啟其他單位的異動表還是要輸入密碼呢??
'關閉提示
Application.DisplayAlerts = False

T = "\\shl-group.com\dept\MFMG\B.各組資料 (Team inform)\E.生管組 (PPC group)\D.生產相關\2.每日模具異動\模具異動-六福\"
A = Format(Date, "W")
B = Format(Date, "yyyy.mm.dd")
If Dir(T & B & " 每日模具異動.xlsx") = Empty Then
   B = Format(Switch(A = 7, Date - 1, A = 1, Date - 2, A = 2, Date - 3, A > 2, Date - 1), "yyyy.mm.dd")
   If Dir(T & B & " 每日模具異動.xlsx") = Empty Then MsgBox "找不到 " & B & " 檔案": Exit Sub
End If
Workbooks.Open (T & B & " 每日模具異動.xlsx")
密碼.PNG

TOP

回復 10# cowww


    用13#樓查檔案是否存在的方式再多一個回圈 從今天開始判定,找不到就倒退日期繼續找,找到就跳出迴圈,開啟檔案
如此方式可以找到最新的,不必考慮星期幾?
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 10# cowww


Sub 先判定是不是有今天的()
Dim T$, A%, B$
T = "\\shl-group.com\dept\MFMG\B.各組資料 (Team inform)\E.生管組 (PPC group)\D.生產相關\2.每日模具異動\模具異動-六福\"
A = Format(Date, "W")
B = Format(Date, "yyyy.mm.dd")
If Dir(T & B & " 每日模具異動.xlsx") = Empty Then
   B = Format(Switch(A = 7, Date - 1, A = 1, Date - 2, A = 2, Date - 3, A > 2, Date - 1), "yyyy.mm.dd")
   If Dir(T & B & " 每日模具異動.xlsx") = Empty Then MsgBox "找不到 " & B & " 檔案": Exit Sub
End If
Workbooks.Open (T & B & " 每日模具異動.xlsx")
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 10# cowww


Sub 判定路徑下檔案是不是存在()
If Dir("D:\2023.04.14 TEST.xls") <> Empty Then
   MsgBox "有這檔案"
End If
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 10# cowww


    If B = Format(Date, "yyyy.mm.dd") Then
前方沒有給B變數值,所以
B 必定不等於 Format(Date, "yyyy.mm.dd")
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 7# cowww

請問這段判斷式哪裡寫錯了
我希望系統先去找當天日期的異動表,可是它都是去找昨天的日期
如果"有"->執行If
如果"沒有"->再Else
A = Format(Date, "W")
If B = Format(Date, "yyyy.mm.dd") Then
Workbooks.Open ("\\shl-group.com\dept\MFMG\B.各組資料 (Team inform)\E.生管組 (PPC group)\D.生產相關\2.每日模具異動\模具異動-六福\" & B & " 每日模具異動.xlsx")

Else: B = Format(Switch(A = 7, Date - 1, A = 1, Date - 2, A = 2, Date - 3, A > 2, Date - 1), "yyyy.mm.dd")
Workbooks.Open ("\\shl-group.com\dept\MFMG\B.各組資料 (Team inform)\E.生管組 (PPC group)\D.生產相關\2.每日模具異動\模具異動-六福\" & B & " 每日模具異動.xlsx")

TOP

回復 8# Andy2483


非常抱歉
剛剛檢查了所有會使用到的excel發現
六幅異動表的日期在凌晨03:21就更新日期
以前都是早上08:00之後才更改,所以自動執行的時間我才會設定06:00
六福.PNG

剛剛把語法改成A>1,date就沒問題了

非常感謝Andy2483大大的指導

TOP

本帖最後由 Andy2483 於 2023-4-14 08:32 編輯

回復 7# cowww

出現什麼錯誤訊息嗎?
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 6# Andy2483

非常感謝Andy2483大大的指導

請問紅色字體那段哪裡寫錯了??
2023.04.14 每日模具異動->是因為日期和文字之間有一個空格造成的嗎??
'開啟六幅異動表
A = Format(Date, "W")
B = Format(Switch(A = 7, Date - 1, A = 1, Date - 2, A = 2, Date - 3, A > 2, Date - 1), "yyyy.mm.dd")
MsgBox B
Workbooks.Open ("\\SMK\B.各組資料 (Team inform)\E.生管組 (PPC group)\D.生產相關\2.每日模具異動\模具異動-六福\" & B & " 每日模具異動.xlsx")


MsgBox B->顯示的日期沒有問題
訊息方塊.PNG

TOP

        靜思自在 : 為人處世要小心細心,但不要「小心眼」。
返回列表 上一主題