আমার সমাধানের জন্য আমি একটি ম্যাক্রো তৈরি করেছি যা সমস্ত কাস্টম ভিউ সাফ করে এবং তুলনামূলকভাবে যে কতক্ষণ ব্যবহারকারী নিষ্ক্রিয় ছিলেন এবং তারপরে সময়সীমার বাইরে থাকলে তাদের লাথি মেরে ফেলে। ফাইলগুলি খোলার সময় আমি ক্লিন_আপ চালায়।
Sub Clean_Up()
'Clean up Extra Data to prevent file from being sluggish
Dim cv As CustomView
For Each cv In ActiveWorkbook.CustomViews
cv.Delete
Next cv
SharedUserCheck
End Sub
Sub SharedUserCheck()
'Remove old users to speed up shared workbook
Dim TimeStart As Date
Dim TimeLimit As Date
Dim SharedDuration As Date
Dim Users As Variant
Dim UserCount As Integer
'Set time limit here in "HH:MM:SS"
TimeLimit = TimeValue("02:00:00")
Users = ActiveWorkbook.UserStatus
For UserCount = UBound(Users) To 1 Step -1
TimeStart = Users(UserCount, 2)
SharedDuration = Now - TimeStart
If SharedDuration > TimeLimit Then
'MsgBox (Users(UserCount, 1) & " has been inactive for " & Application.Text(SharedDuration, "[hh]:mm") & " and will now be removed from the workbook.")
ThisWorkbook.RemoveUser (UserCount)
End If
Next
End Sub
আপডেট: 9/1/15
সুতরাং কোনও সমস্যা ছাড়াই এক সপ্তাহ বা তার বেশি সময় হয়ে গেছে আমি লক্ষ্য করেছি যে ফাইলগুলির মধ্যে কিছুটা বড় হতে শুরু করেছে।
আমি বিশ্বাস করি এটি 30 দিনের পরিবর্তিত ইতিহাস রাখার কারণেই এটি ঘটেছে। ফাইলের আকার কম রাখতে আমি এটিকে 1 দিনের মধ্যে কমিয়েছি।
ভাগ করা ব্যবহারকারী তালিকায় আর কোনও অতিরিক্ত ব্যবহারকারী নেই এবং ফাইলগুলি দুর্দান্ত কাজ করছে।
আপডেট: 9/17/15
ফাইলগুলি একই আকারে অবশিষ্ট রয়েছে ব্যবহারকারীরা কোনও কার্যকারিতা হ্রাস লক্ষ্য করেনি। ব্লাট পরিষ্কার করতে আমার ফাইলগুলির কোনও কাজ করতে হয়নি। এটি সমস্যাগুলি স্থির করেছে বলে মনে হচ্ছে।
আপডেট: 3/27/17
উপরের মূল উত্তরটি ভাল কাজ করেছে যতক্ষণ না আমরা সত্যই এই ওয়ার্কবুকগুলিকে ঠেলাতে শুরু করি। আমাদের এখন প্রায় 150 জন ব্যবহারকারী প্রতি সপ্তাহে এই ওয়ার্কবুকগুলিতে কয়েক হাজার পরিবর্তন করে চলেছে এ সময়টিতে আমাদের আবার সমস্যা শুরু হয়েছিল।
সুতরাং আমি সাপ্তাহিক ওয়ার্কবুকগুলি আনশারে অতিরিক্ত কোড যুক্ত করেছি এবং তারপরে রবিবার প্রথমবারের মতো খোলার পরে ওয়ার্কবুকটি পুনরায় ভাগ করুন। এটি অন্য যে কোনও সমস্যার কারণে কার্যপত্রিকাটি দুর্নীতিগ্রস্থ হওয়ার কারণ হতে পারে care
আমি প্রায় এক বছর আগে চূড়ান্ত অংশ যুক্ত করেছি এবং যেহেতু আমাদের মোটেই সমস্যা হয়নি। এটি ব্যাখ্যা করার জন্য মন্তব্য সহ আমার কোডের চূড়ান্ত অংশ। কেবল এটি একটি মডিউলে যুক্ত করুন এবং ওয়ার্কবুক_অ্যাপেন ইভেন্টে রবিবারের রক্ষণাবেক্ষণের রুটিনটি কল করুন:
Public Sub RemoveOtherUsers()
'Remove all other users to prevent access violation
Dim Users As Variant
Dim UserCount As Integer
Users = ThisWorkbook.UserStatus
For UserCount = UBound(Users) To 1 Step -1
If Users(UserCount, 1) <> Application.UserName Then
ThisWorkbook.RemoveUser (UserCount)
End If
Next
End Sub
Public Sub SundayMaintenance()
Application.ScreenUpdating = False
'On every Sunday the first time the sheet is opened clear out extra data and extra sheets
If (WeekdayName(Weekday(Date)) = "Sunday") And (Sheets(1).Cells(3, "AG").Value < Date) Then
'Disconnect other users as a precaution
RemoveOtherUsers
Application.DisplayAlerts = False
'Unshare to clear extra data out
ThisWorkbook.UnprotectSharing ("Whatever Password")
Application.DisplayAlerts = True
'Set Change History to 1 day to prevent build up of junk in the file
With ThisWorkbook
If .KeepChangeHistory Then
.ChangeHistoryDuration = 1
End If
End With
'Store Last Date Unshared and Cleared to prevent multiple unshare events on sunday.
Sheets(1).Cells(3, "AG").Value = Date
'Delete all extra sheets that were added by mistake and have the word sheet in them
For Each WS In ThisWorkbook.Worksheets
If UCase(WS.Name) Like "Sheet" & "*" Then
Application.DisplayAlerts = False
WS.Delete
Application.DisplayAlerts = True
End If
Next
'Reshare
Application.DisplayAlerts = False
ThisWorkbook.ProtectSharing Filename:=ThisWorkbook.FullName, SharingPassword:="Whatever Password"
Application.DisplayAlerts = True
End If
Application.ScreenUpdating = True
End Sub
আপডেট: 7/23/18
আমি এই উত্তরে স্মার্কিংম্যানের ছোট পরিবর্তন যুক্ত করেছি। আমরা এখনও আমাদের ভাগ করা ওয়ার্কবুকগুলিতে এই কোডটি চালাচ্ছি এবং সেগুলি ক্রাশ হয় না এবং প্রত্যাশার মতো চলছে। আমরা সর্বশেষতম শেয়ারপয়েন্ট সংস্করণও চালিয়েছি যা এখনও ভাগ করা ওয়ার্কবুকের বৈশিষ্ট্যগুলির সাথে ধরা দেয়নি।