返回列表 上一主題 發帖

[發問] 關閉特定excel檔案

[發問] 關閉特定excel檔案

公司ERP系統會下載一個EXCEL檔案,我的帳號登入後如果下載該資料,
第一次會轉出檔名Link.xls的資料檔
第二次會轉出檔名Link(1).xls的資料檔
第三次會轉出檔名Link(2).xls的資料檔
如果我帳號一直沒有登出,第N次就會轉出檔名Link(N-1).xls的資料檔

之後我會將Link.xls整頁手工複製貼上至  主檔.xlsm 其中一個頁面,然後開始執行VBA處理資料,最後我想省下一道工,就是用VBA也將Link.xls關閉(不用存檔)。
目前遇到的問題是當要關閉的檔名是Link(1).xls的時候無法關閉,請問要如何撰寫這部分的程序。

Sub Test1()
    Workbooks("Link").Activate
    Workbooks("Link").Close
End Sub

回復 1# pointchi

'FPath= "D:\Link.xls"
Set WB = Workbooks.Open('FPath檔案來源路徑)
WB.Close

TOP

S 大,我將您說明的字串加入我的VBA,當檔案為Link是可以自動關閉,可是Link(1)...Link(N-1)時仍無法關閉,請問是否我有哪邊錯誤,附上我的VBA

Sub step01()
    a = Cells(13, 4)
    If Len(a) >= 28 Then
        Worksheets("raw").Cells(13, 4).Font.Name = "Arial"
        Worksheets("raw").Cells(13, 4).Font.Size = 35
        Worksheets("raw").Cells(13, 4).Font.FontStyle = "粗體"
    Else
        Worksheets("raw").Cells(13, 4).Font.Name = "Arial"
        Worksheets("raw").Cells(13, 4).Font.Size = 48
        Worksheets("raw").Cells(13, 4).Font.FontStyle = "粗體"
    End If
   
    Set WB = Workbooks.Open("C:\Users\Point\Downloads\link.xlsm")
    WB.Close

End Sub

TOP

回復 3# pointchi

我將您說明的字串加入我的VBA,當檔案為Link是可以自動關閉,可是Link(1)...Link(N-1)時仍無法關閉,請問是否我有哪邊錯誤,附上我的VBA
>> 看你的程式只有針對Link動作,其它的沒有,還是方便可以附上檔案,描述需求結果,謝謝

TOP

S大您好,
附檔解壓縮後,TEST1是我的主檔,Link是我的資料來源檔案。
我會將Link整頁手工複製貼上至 TEST1的Raw標籤頁,然後開始執行VBA處理資料,最後我想省下一道工,就是用VBA也將Link.xls關閉(不用存檔)。
目前我可以自動關閉Link的檔案。

可是因為公司的ERP系統於我的帳號登入後下載該資料,
第一次會轉出檔名Link.xls的資料檔
第二次會轉出檔名Link(1).xls的資料檔
第三次會轉出檔名Link(2).xls的資料檔
如果我帳號一直沒有登出,第N次就會轉出檔名Link(N-1).xls的資料檔

因此我第二次作業TEST1的檔案時,資料來源的檔案檔名為Link(1),VBA因為只找尋Link但找不到,就無法自動關閉Link(1)
以此類推,我第三次作業TEST1時,來源的檔案檔名為Link(2)。
有甚麼語法可以不管我第N次執行TEST1時,來源的檔名為Link(N-1),VBA能夠關閉Link(N-1)這個檔案。
Downloads.rar (38.63 KB)

TOP

S大您好,
附檔解壓縮後,TEST1是我的主檔,Link是我的資料來源檔案。
我會將Link整頁手工複製貼上至 TES ...
pointchi 發表於 2021-11-18 22:47


如果我帳號一直沒有登出,第N次就會轉出檔名Link(N-1).xls的資料檔
>>只要登入後沒有執行任何動作,ERP會自動幫你轉出資料檔嗎? 轉出後會自動幫你存檔?

我會將Link整頁手工複製貼上至 TEST1的Raw標籤頁,然後開始執行VBA處理資料,最後我想省下一道工,就是用VBA也將Link.xls關閉(不用存檔)。目前我可以自動關閉Link的檔案。
>>建議登入ERP後下載資料檔後,然後用VBA執行,選取由ERP轉出資料檔-->執行處理資料-->關閉資料檔案

TOP

回復 6# samwang
如果我帳號一直沒有登出,第N次就會轉出檔名Link(N-1).xls的資料檔
>>只要登入後沒有執行任何動作,ERP會自動幫你轉出資料檔嗎? 轉出後會自動幫你存檔?
>>登入ERP後,如有要作業時才手動按ERP上的匯出按鈕,ERP會匯出成Link.xls,再重登入ERP之前,每次匯出的檔名會依序+1,為Link.xls,Link(1).xls,Link(2).xls,Link(N-1).xls...
     所以如果我第5次按匯出按鈕,匯出的檔名為Link(4).xls,不然我就是每次要匯出檔案前先登出再重登入ERP,這樣匯出的檔才會是Link.xls,VBA才不會出現錯誤訊息


我會將Link整頁手工複製貼上至 TEST1的Raw標籤頁,然後開始執行VBA處理資料,最後我想省下一道工,就是用VBA也將Link.xls關閉(不用存檔)。目前我可以自動關閉Link的檔案。
>>建議登入ERP後下載資料檔後,然後用VBA執行,選取由ERP轉出資料檔-->執行處理資料-->關閉資料檔案
>>ERP下載資料檔後,我原本也想用VBA執行,可是同樣遇到我要選取的檔案Link.xls可行,可是第2次以後變成Link(1).xls,VBA就無法找到。
      因此我才每次先手動複製至作業主檔TEST1的Raw標籤頁,最少VBA可以執行我大部分重複工作,只是開頭要手動複製頁面,結尾要手動關閉檔案。


我是想說如果可以於作業結束,VBA幫我也順便將Link(N-1).xls的檔案關閉,我也就可以研究如何複製Link(N-1).xls的檔案至作業主檔TEST1的Raw標籤頁

TOP

本帖最後由 samwang 於 2021-11-19 12:14 編輯

回復 7# pointchi

我會將Link整頁手工複製貼上至 TEST1的Raw標籤頁,然後開始執行VBA處理資料,最後我想省下一道工,就是用VBA也將Link.xls關閉(不用存檔)。目前我可以自動關閉Link的檔案。
>>建議登入ERP後下載資料檔後,然後用VBA執行,選取由ERP轉出資料檔-->執行處理資料-->關閉資料檔案
>>ERP下載資料檔後,我原本也想用VBA執行,可是同樣遇到我要選取的檔案Link.xls可行,可是第2次以後變成Link(1).xls,VBA就無法找到
      因此我才每次先手動複製至作業主檔TEST1的Raw標籤頁,最少VBA可以執行我大部分重複工作,只是開頭要手動複製頁面,結尾要手動關閉檔案。
>>所以建議人工選取由ERP轉出資料檔-->VBA執行處理資料-->VBA關閉資料檔案,選取由ERP轉出資料檔(由人工選取需求檔案),這樣流程是否有比較好?

TOP

本帖最後由 pointchi 於 2021-11-19 21:40 編輯

回復 8# samwang

我會將Link整頁手工複製貼上至 TEST1的Raw標籤頁,然後開始執行VBA處理資料,最後我想省下一道工,就是用VBA也將Link.xls關閉(不用存檔)。目前我可以自動關閉Link的檔案。
>>建議登入ERP後下載資料檔後,然後用VBA執行,選取由ERP轉出資料檔-->執行處理資料-->關閉資料檔案
>>ERP下載資料檔後,我原本也想用VBA執行,可是同樣遇到我要選取的檔案Link.xls可行,可是第2次以後變成Link(1).xls,VBA就無法找到。
      因此我才每次先手動複製至作業主檔TEST1的Raw標籤頁,最少VBA可以執行我大部分重複工作,只是開頭要手動複製頁面,結尾要手動關閉檔案。
>>所以建議1.人工(YES)選取由ERP轉出資料檔-->2.VBA(YES)執行處理資料-->3.VBA(這點我不太了解??)關閉資料檔案,選取由ERP轉出資料檔(由人工選取需求檔案),這樣流程是否有比較好?

      Sorry,我的意思可能S大誤會了,我目前的作業是
      1.手動按ERP上的匯出按鈕,匯出Link(N-1).xls
         手動選取ERP轉出資料檔Link(N-1).xls,手動複製至作業主檔TEST1的Raw標籤頁
      2.VBA執行處理TEST1資料
      3.手動選取第1點中ERP匯出的Link(N-1).xls並且關閉-->是否可以用VBA關閉Link(N-1).xls

TOP

dim linkbook as workbook
for each linkbook in workbooks
    if lcase(.name) like "link*.xls*" then .close 0
next

TOP

        靜思自在 : 【時間無法遮擋】怕時間消逝,花了許多心血,想盡各式方法要遮擋時間,結果是:浪費了更多時間,且一無所成!
返回列表 上一主題