標題:
[發問]
如何得知 A.xls恰巧有別人在使用???
[打印本頁]
作者:
yangjie
時間:
2014-6-25 23:16
標題:
如何得知 A.xls恰巧有別人在使用???
又有一嘗試,請教專家大大們協助突破
因情事需要,輸入者眾 且不同地點
將資料夾(出缺勤獎懲登錄)置於 "網路芳鄰"中 供眾導師們各自登錄
1.資料夾含(1登錄.xls,1資料庫.xls,2登錄.xls,2資料庫.xls,------,總管理.xls,總資料庫.xls)
2.平時(導師1) (開1登錄.xls 登錄後 傳回1資料庫.xls )---1資料庫.xls 只在霎那open,close
(導師2) (開2登錄.xls 登錄後 傳回2資料庫.xls )---2資料庫.xls 只在霎那open,close----
3.主任開總管理.xls,欲作總資料庫.xls向1資料庫.2資料庫.---取回資料(也是極短時間5秒)
以上均完成VBA處理
問題如下
導師與主任 若在 存取之間 霎那 恰巧同時 就出現 error
就教於大大先進
1號人先開A.xls 尚未 .close前 2號人也要打開A.xls
2號人如何得知 A.xls恰巧有別人在使用???
此時如何叫電腦暫停20秒再動作??
如此說明 希望能了。
請求救援!謝謝
作者:
c_c_lai
時間:
2014-6-26 04:16
回復
1#
yangjie
你可以另外增加一個小檔案 (文字檔、亦或是資料庫),
作為開啟關閉的控制與管理 (Key File) (置於執行區)。
於開啟 EXCEL 檔案時,在一進入同時先交由
Private Sub Workbook_Open() 判斷上述之小檔案
內容為何 ?
(譬如: 1 - 為真,表示已有人開啟,隨即跳離關閉 EXCEL。
或出示訊息告知『別人在使用中』等提示。
0 - 為否,表示無人進入,順手將它修正為 1 並隨即
予以存檔關閉(Key File),以供他人再開啟檢視。
在關閉 EXCEL 離開前,則再將它的內容修正為 0。)
如此便可達到你所需之控管了。
作者:
GBKEE
時間:
2014-6-26 07:03
本帖最後由 GBKEE 於 2014-6-26 10:53 編輯
回復
1#
yangjie
可參考這裡
使 A.xls 為共用活頁簿
Option Explicit
Sub Ex()
Dim users, A
users = Workbooks("共用.xls").UserStatus
A = Application.WorksheetFunction.Index(Application.WorksheetFunction.Transpose(users), 1)
MsgBox "Users : " & UBound(users) & vbLf & Join(A, vbLf)
End Sub
複製代碼
[attach]18561[/attach]
作者:
yangjie
時間:
2014-6-26 23:44
回復
3#
GBKEE
請教GBKEE
有無辦法在A.xls內用VBA 使 B.xls成為共用活頁簿可供多人使用狀態
作者:
yangjie
時間:
2014-6-27 00:06
回復
2#
c_c_lai
請教大大
可幫忙示範一下
作者:
yangjie
時間:
2014-6-27 00:10
回復
3#
GBKEE
請教GBKEE
可否 傳回 共用人數(傳回人數n)?
這樣可利用n<2即可繼續-----
作者:
c_c_lai
時間:
2014-6-27 08:12
回復
5#
yangjie
這篇文章對你應該會有所幫助的:
Who open VBA Excel 2003/WinXP
作者:
GBKEE
時間:
2014-6-27 19:53
回復
6#
yangjie
共用人數(傳回人數n)?
3# 的程式碼,就是啊.
Option Explicit
Const ExFile = "D:\AA.XLS"
Private Sub 設為共用活頁簿()
Application.DisplayAlerts = False
With Workbooks.Open(ExFile)
If Not .ReadOnly And Not .MultiUserEditing Then
'ReadOnly 屬性 如果物件是以唯讀模式開啟,則傳回 True。唯讀 Boolean
'MultiUserEditing 屬性 如果活頁簿是以共用清單模式開啟的則為 True。唯讀 Boolean。
.SaveAs Filename:=.FullName, AccessMode:=xlShared '存檔為共用模式
.AutoUpdateFrequency = 5 'AutoUpdateFrequency 屬性 設定以分鐘為單位傳回或設定對共用活頁簿進行自動更新的時間間隔。讀/寫 Long。
.ChangeHistoryDuration = 30 'ChangeHistoryDuration 屬性 設定共用活頁簿的修訂記錄中所要顯示修訂資訊的天數。讀/寫 Long
End If
.Close True
End With
Application.DisplayAlerts = True
End Sub
Private Sub 取消設為共用活頁簿()
Application.DisplayAlerts = False
With Workbooks.Open(ExFile)
If Not .ReadOnly And .MultiUserEditing Then .ExclusiveAccess
'Not .ReadOnly:沒有人開啟這檔案
'.MultiUserEditing :是共用活頁簿
.Close True
End With
Application.DisplayAlerts = True
End Sub
複製代碼
作者:
yangjie
時間:
2014-6-29 12:19
回復
8#
GBKEE
感謝GBKEE版大 學習頗多 也解決嘞困惑
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)