كيفية الكشف عن الخمول المستخدم في مصنف Excel
-
05-07-2019 - |
سؤال
وأريد أن اتخاذ إجراء في ماكرو مصنف Excel بعد فترة من الخمول (إخفاء / حماية بعض أوراق العمل). ما هو أفضل / أبسط طريقة لتحقيق ذلك؟
ووأنا على افتراض سوف تستخدم Application.OnTime
للتحقق بشكل دوري إذا كان مستخدم نشط. ولكن ما هي الأحداث التي يجب أن تعامل لمعرفة ما إذا كان المستخدم "النشط" (أي لديها يفعل شيئا - أي شيء - مع المصنف)؟
وتوضيح: أريد أن كشف <م> جميع م> النشاط، لا يغير فقط. بمعنى آخر. بما في ذلك نقرات الماوس، واختيار والنسخ والتنقل باستخدام لوحة المفاتيح، وأوراق العمل المتغيرة، ...
وأفترض أنه عندما يحدث حدث UI التي تمثل نشاط المستخدم، وسوف تعيين متغير على النحو التالي:
LastActivityTime = Now
ووسوف المدى الكلي من خلال Application.OnTime
تحقق هذا المتغير لمعرفة ما إذا كان المستخدم النشط مؤخرا. أن الأحداث التي (غير SheetChange
) ولست بحاجة للتعامل مع وضع هذا المتغير؟ كنت قد النوع من يأمل في ان هناك KeyUp
والأحداث MouseUp
، هذين ربما كانت كافية.
تحديث: لقد نفذت ذلك عن طريق التعامل مع Workbook_SheetActivate
، Workbook_SheetSelectionChange
وWorkbook_WindowActivate
. واقعية وربما هذا هو ما يكفي.
المحلول
ولقد نفذت ذلك عن طريق التعامل مع Workbook_SheetActivate، Workbook_SheetSelectionChange وWorkbook_WindowActivate. واقعية وربما هذا هو ما يكفي.
نصائح أخرى
وأستطيع أن أرى فقط حلين - إما التعامل مع evary حدث واحد كائن التطبيق له أو استخدام <لأ href = "http://msdn.microsoft.com/en-us/library/ms646302.aspx" يختلط = " نوفولو noreferrer "> GetLastInputInfo وظيفة.
واحد طريقة بسيطة لمقارنة محتوى المصنف مع أن في آخر مرة قمت بالتدقيق. وأعتقد أن الجمع بين هذا مع Application.OnTime سوف يحل مشكلتك.