返回列表 上一主題 發帖

偵測"1.xls"檔是否呈打開狀態?

偵測"1.xls"檔是否呈打開狀態?

請教各位大大:
        個人在用VBA打開另外Excel檔如"1.xls"檔,若逢"1.xls"檔本來就已呈打開狀態時,就不太恰當。
請教各位先進若要偵測"1.xls"檔是否呈打開狀態?應如何運用VBA語法?

  1. bookname = "1.xls"

  2. For Each wbs In Workbooks
  3.     If UCase(wbs.Name) = UCase(bookname) Then
  4.         MsgBox bookname & " is opened"
  5.         Exit For
  6.     End If
  7. Next wbs
複製代碼
只懂這個,希望可以幫到你

TOP

回復 2# 小俠客

新開檔案 BOOK1 測試不出來
舊檔案 S.XLS 就可以測試出來
好像要存檔後才有效
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

本帖最後由 Hsieh 於 2012-8-31 22:32 編輯

回復 3# ML089


    這個問題牽涉到開啟檔案是否是在同一個Application
如果已啟動一個全新的Excel然後開啟其他檔案
那麼同一個Application所開啟的檔案都能找得到
但是假如開啟了一些舊檔,然後按下程式集裡的Excel程式
在這個新的檔案內則無法搜尋到之前開啟的檔案名稱
必須是在已經開啟的程式中
以檔案/開新檔案才能夠搜尋所有已開啟檔案
FilesExists.rar (7.6 KB)
play.gif
學海無涯_不恥下問

TOP

回復 4# Hsieh


   
對不起,胡亂回答錯的答案,十分抱歉:dizzy:

TOP

回復 5# 小俠客

千萬別這麼說,討論區沒有真正對與錯
勇於發表才能獲得更多
學海無涯_不恥下問

TOP

本帖最後由 yangjie 於 2012-9-1 04:33 編輯

回復 4# Hsieh
    請教於板主先進
    Dim Filt As String
    Dim FilterIndex As Integer
    Dim fileName As Variant
    Dim Title As String
    Filt = "Excel Files (*.xls),*.xls"
    FilterIndex = 5
    Title = "Select a File for Import"
    fileName = Application.GetOpenFilename _
        (FileFilter:=Filt, _
         FilterIndex:=FilterIndex, _
         Title:=Title)
    If fileName = False Then
        MsgBox "No file was selected."
        Exit Sub
    End If
我只要得到fileName 的檔名(string)應如何下語法?(不含path)
謝謝

TOP

回復 7# yangjie 主要

    主要下一列要Open
Set wb = Workbooks.Open(fileName, True, False)
   但常在已打開之下做重複打開
不支應如何處理

TOP

回復 4# Hsieh
     Hseih大大     謝謝您
Function IsOpen(Fs As String) As Boolean
IsOpen = False
For Each w In Windows
  If w.Caption = Fs Then IsOpen = True: Exit For
Next
End Function

    其中 fs 與 上述filename 型態不符 我就卡住了 怎麼辦?

TOP

回復 4# Hsieh
對不起 將大名拼錯了 應為Hsieh大大

TOP

        靜思自在 : 犯錯出懺悔心,才能清淨無煩惱。
返回列表 上一主題