返回列表 上一主題 發帖

[發問] 檔名不同如何判斷

[發問] 檔名不同如何判斷

請求各位大大的幫忙
我有個檔案早上會去開起其他檔案撈資料
有一個外單位的檔案突然改了檔名
請問要如何讓系統判斷找不到"檔名A"就去找"檔名B"

這是原先的檔名"日期+空格+名"
六幅異動表.PNG
2023-4-25 10:40


今天莫名改了檔名"日期+名"
六幅異動表2.PNG
2023-4-25 10:41


Dim T$, B$, i%
T = "\\shl-group.com\dept\MFMG\B.各組資料 (Team inform)\E.生管組 (PPC group)\X.自動化工具(勿刪)\模具異動-六福(急件1.9專用)\"
For i = 0 To 10
   B = Format(Date - i, "yyyy.mm.dd")
   If Dir(T & B & " 每日模具異動.xlsx") <> Empty Then GoTo i01

Next
MsgBox "找不到 " & Date & " ~ " & Date - 10 & " 檔案": Exit Sub
i01: Workbooks.Open filename:=T & B & " 每日模具異動.xlsx", ReadOnly:=True

回復 1# cowww


   
Dim T$, B$, i%
T = "\\shl-group.com\dept\MFMG\B.各組資料 (Team inform)\E.生管組 (PPC group)\X.自動化工具(勿刪)\模具異動-六福(急件1.9專用)\"
For i = 0 To 10
   B = Format(Date - i, "yyyy.mm.dd")
   If Dir(T & B & " 每日模具異動.xlsx") <> Empty Then GoTo i01
   If Dir(T & B & "每日模具異動.xlsx") <> Empty Then GoTo i02
Next
MsgBox "找不到 " & Date & " ~ " & Date - 10 & " 檔案": Exit Sub
i01: Workbooks.Open filename:=T & B & " 每日模具異動.xlsx", ReadOnly:=True:Exit Sub
i02: Workbooks.Open filename:=T & B & "每日模具異動.xlsx", ReadOnly:=True
看得懂是應該的,懂得應用才像學生,臉皮厚點學會更謹慎積極

TOP

回復 2# Andy2483

非常感謝Andy2483大大的解惑

我突然想到個問題,如果開啟的檔名跟"複製"&"關閉"的檔名不一樣
執行時是不是會出現異常
'複製2023.04.13 每日模具異動.xlsx中LF工作表的A欄到AG欄
Workbooks(B & " 每日模具異動.xlsx").Worksheets("LF").Columns("A:AG").Cells.Copy

'關閉六幅異動表
Workbooks(B & " 每日模具異動.xlsx").Close

TOP

本帖最後由 Andy2483 於 2023-4-25 11:51 編輯

回復 3# cowww


   
On Error Resume Next
Workbooks(B & " 每日模具異動.xlsx").Close
Workbooks(B & "每日模具異動.xlsx").Close
On Error Goto 0

===========================
補充:
建議前輩先可以用之後再研究如何簡化,讓更易視讀
看得懂是應該的,懂得應用才像學生,臉皮厚點學會更謹慎積極

TOP

回復 4# Andy2483


成功了
非常感謝Andy2483大大的解惑

TOP

本帖最後由 准提部林 於 2023-4-25 19:55 編輯

Dim T$, B$, i%, xBook as workbook
T = "\\shl-group.com\dept\MFMG\B.各組資料 (Team inform)\E.生管組 (PPC group)\X.自動化工具(勿刪)\模具異動-六福(急件1.9專用)\"
For i = 0 To 10
   B = Format(Date - i, "yyyy.mm.dd")
   If Dir(T & B & " 每日模具異動.xlsx") <> "" Then
      set xBook=Workbooks.Open(T & B & " 每日模具異動.xlsx", ReadOnly:=True)
      exit for
Next
if xbook is nothing then MsgBox "找不到目標檔案": Exit Sub
xbook.sheets("LF").Columns("A:AG").Cells.Copy
~~do something ~~
xbook.Close 0

TOP

回復 6# 准提部林
回復 5# cowww


    謝謝論壇,謝謝前輩指導
後學學習心得註解如下,請前輩再指教



Option Explicit
Sub TEST()
Dim T$, B$, i%, xBook As Workbook
'↑宣告變數:(T,B)是字串變數,i是短整數,xBook是活頁簿變數
T = "\\shl-group.com\dept\MFMG\B.各組資料 (Team inform)\E.生管組 (PPC group)\X.自動化工具(勿刪)\模具異動-六福(急件1.9專用)\"
'↑令T這字串變數是 路徑字串
For i = 0 To 10
'↑設順迴圈!i從0到 10
   B = Format(Date - i, "yyyy.mm.dd")
   '↑令B這字串變數是 今天日期-i變數後,
   '轉換為4碼西元年,2碼月,2碼日,中間點間隔的字串

   If Dir(T & B & " 每日模具異動.xlsx") <> "" Then
   '↑如果T變數連接B變數,再連接" 每日模具異動.xlsx"組成新字串查到這檔案?
      Set xBook = Workbooks.Open(T & B & " 每日模具異動.xlsx", ReadOnly:=True)
      '↑令xBook這活頁簿變數是被打開的,
      '被打開的T變數連接B變數,再連接" 每日模具異動.xlsx"組成新字串的檔案

      Exit For
      '↑結束迴圈
   End If
Next
If xBook Is Nothing Then MsgBox "找不到目標檔案": Exit Sub
'↑如果xBook變數是沒有載入物件!就跳出提示窗,結束程式執行
xBook.Sheets("LF").Columns("A:AG").Cells.Copy
'↑繼續以變數xBook指向目標可以讓程式簡潔易視讀
'~~do something ~~
xBook.Close 0
'↑令xBook不存檔 關閉
End Sub
看得懂是應該的,懂得應用才像學生,臉皮厚點學會更謹慎積極

TOP

回復 6# 准提部林

非常感謝准提部林大大的解惑
但是
找不到檔案耶
找步道.PNG
2023-4-26 08:57

LF.PNG
2023-4-26 08:57

TOP

回復 8# cowww


    今天要抓的檔名  " 每日模具異動.xlsx" 前方有空白字元嗎?
看得懂是應該的,懂得應用才像學生,臉皮厚點學會更謹慎積極

TOP

回復 9# Andy2483

沒有空白字元
LF.PNG
2023-4-26 09:45

TOP

        靜思自在 : 甘願做、歡喜受。
返回列表 上一主題