返回列表 上一主題 發帖

[發問] Excel 檔案被其他人開啟

[發問] Excel 檔案被其他人開啟

Dear 大大
利用目前的EXCEL檔案(例如:活頁簿1)來開起另一個EXCEL檔案(BB)
Dim A As Workbook, B As Worksheet
Set A = Workbooks.Open(Filename:=ThisWorkbook.Path & "\bb.xlsm")
Set B = A.Sheets("工作表1")
Range("A1") = B.Range("A1")
end sub
如果遇到BB檔案被別人開啟中,就會出現執行錯誤,而自動開啟BB檔案,
無法再繼續執行下面程式,
是否有辦法可以在不管檔案是否有被開啟中仍可以繼續執行該程式.
那要如何修改??
謝謝

回復 1# borshun88


   
提供給您 Heish 大大之前所發的程式碼
參考網址
http://gb.twbts.com/index.php?topic=13181.0

Sub nn()
Dim w As Window, wb As Workbook
Set d = CreateObject("Scripting.dictionary")
For Each w In Windows
  d(w.Caption) = w.Caption
Next
Sheets("new").Select
  Rows("1:1").Select
  Selection.Copy
If d.exists("new.xls") = False Then Workbooks.Open Filename:="D:\new.xls"
Set wb = Workbooks("new.xls")
wb.Activate
  ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
 
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  :=False, Transpose:=False
  Application.CutCopyMode = False
 
  wb.Save
End Sub

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

回復 1# borshun88
On Error 陳述式 啟動一個錯誤處理常式,且指定此常式在一個程序裏的位置。也可用來停止一個錯誤處理常式。
Resume 陳述式  在錯誤處理常式結束後,恢復原有的執行。語法 Resume 0 Resume Next
  1. Option Explicit
  2. Sub Ex()
  3.     Dim A As Workbook, B As Worksheet
  4.     On Error Resume Next
  5.     Set A = Workbooks.Open(Filename:=ThisWorkbook.Path & "\bb.xlsm")
  6.     If Err.Number <> 0 Then
  7.         MsgBox "檔案無法開啟"
  8.         Exit Sub
  9.     End If
  10.     Set B = A.Sheets("工作表1")
  11.     Range("A1") = B.Range("A1")
  12.    
  13. End Sub
複製代碼

TOP

回復 3# GBKEE
感謝GBKEE大大的回覆
on error resume next 可以解決這問題
感恩

TOP

        靜思自在 : 是非當教育,讚美作警惕。
返回列表 上一主題