உங்கள் மேக்ரோ குறியீட்டை இடைநிறுத்த எக்செல் விபிஏ தூக்க செயல்பாடு

எக்செல் விபிஏ தூக்க செயல்பாடு

வி.பி.ஏ தூக்கம் செயல்பாடு என்பது விண்டோஸ் டி.எல்.எல் கோப்புகளின் கீழ் இருக்கும் ஒரு விண்டோஸ் செயல்பாடாகும், இது மேக்ரோ நடைமுறையை ஒரு குறிப்பிட்ட நேரத்திற்கு இயங்குவதை நிறுத்த அல்லது இடைநிறுத்த பயன்படுகிறது.

பிற பணிகளை முடிக்க எங்கள் மேக்ரோ இயங்கும் செயல்முறையை இடைநிறுத்த வேண்டிய சூழ்நிலைகள் உள்ளன. பிற பணிகள் எங்கள் குறியீட்டு முறையின் ஒரு பகுதியாக இருக்கலாம் அல்லது பிற மேக்ரோ நடைமுறையின் ஒரு பகுதியாக இருக்கலாம் அல்லது இது தற்போதைய எக்செல் மேக்ரோவின் உள்ளீடாக இருக்கலாம். நிரல் இயங்கும்போது அதை எவ்வாறு இடைநிறுத்த முடியும்? பயனரால் குறிப்பிடப்பட்ட சில நேரம் நடைமுறைக் குறியீட்டை நாம் இடைநிறுத்தலாம், அதன்பிறகு குறிப்பிட்ட அளவு நிரலை மீண்டும் தொடங்கலாம். SLEEP செயல்பாட்டைப் பயன்படுத்தி இதை VBA இல் செய்யலாம்.

VBA தூக்க செயல்பாடு என்ன செய்கிறது?

"சிறிது நேரம் தூங்குங்கள்", "சிறிது நேரம் ஓய்வெடுங்கள்", "நேரத்திற்கு இடைநிறுத்தம்", சிறிது நேரம் ஓய்வு பெறுதல் "போன்ற பெயர்களிலேயே SLEEP செய்யுங்கள். தூக்க செயல்பாடு பயனர்கள் எங்கள் மேக்ரோ குறியீட்டை மில்லி விநாடிகளுக்கு இடைநிறுத்த அனுமதிக்கிறது. இதைப் பயன்படுத்தி மேக்ரோ குறியீட்டின் செயல்முறையை தாமதப்படுத்தலாம்.

எங்களிடம் SLEEP எனப்படும் உள்ளமைக்கப்பட்ட செயல்பாடு இருப்பதாக நீங்கள் நினைத்தால், நீங்கள் தவறு செய்கிறீர்கள், ஏனெனில் VBA இல் இதுபோன்ற செயல்பாடு எதுவும் இல்லை, மாறாக ஸ்லீப் எனப்படும் ஒரு செயல்பாடு விண்டோஸ் செயல்பாடாக உள்ளது. ஒரு சிறப்பு குறியீட்டை உள்ளிடுவதன் மூலம் இந்த செயல்பாட்டை VBA இல் அழைக்கலாம். உண்மையில், இது விண்டோஸ் டி.எல்.எல் கோப்புகளுக்குள் இருக்கும் ஒரு செயல்பாடாகும், எனவே வி.பி.ஏ.யில் சப்ரூட்டீன் தொடங்குவதற்கு முன்பு ஏபிஐ பெயரிடலை அறிவிக்க வேண்டும்.

கீழே VBA குறியீடு உள்ளது.

குறியீடு:

# VBA7 என்றால் பொது அறிவிப்பு PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds as LongPtr) 'எக்செல் 64-பிட் பதிப்புகளுக்கு # வேறு பொது அறிவிப்பு சப் ஸ்லீப் லிப் "கர்னல் 32" (பைவல் டவ் மில்லி விநாடிகள் நீண்டது)' 32-பிட் பதிப்புகளுக்கு எக்செல் # முடிவு என்றால் 

மேக்ரோ குறியீடுகளை எழுதத் தொடங்குவதற்கு முன் மேலே உள்ளவற்றை நகலெடுத்து உங்கள் தொகுதியில் ஒட்டவும். இதை உங்கள் தொகுதியில் ஒட்ட வேண்டும்.

உதாரணமாக

குறியீட்டை எழுதும் வழியை நான் உங்களுக்குக் காண்பிக்கும் முன், தூக்கத்தின் செயல்பாட்டைப் பற்றி இன்னும் கொஞ்சம் சொல்கிறேன். இது மில்லி விநாடிகளில் செயல்முறையை தாமதப்படுத்துகிறது. எனவே 1 வினாடி 1000 மில்லி விநாடிகளுக்கு சமம், நீங்கள் 10 விநாடிகள் இடைநிறுத்த விரும்பினால் 10000 மில்லி விநாடிகள் இருக்க வேண்டும்.

இந்த விபிஏ ஸ்லீப் எக்செல் வார்ப்புருவை இங்கே பதிவிறக்கம் செய்யலாம் - விபிஏ ஸ்லீப் எக்செல் வார்ப்புரு

எடுத்துக்காட்டு # 1

துணை செயல்முறை தொடங்குவதற்கு முன்பு API குறியீடு ஒட்டப்பட்டதும், ஒரு மேக்ரோ பெயரை உருவாக்கவும்.

குறியீடு:

# துணை தூக்கம்_ உதாரணம் 1 () முடிவு துணை 

இரண்டு மாறிகள் ஒரு சரமாக அறிவிக்கவும்.

குறியீடு:

 மங்கலான ஸ்டார்ட் டைம் சரம் மங்கலான எண்ட்டைம் சரம் 

க்கு ஆரம்பிக்கும் நேரம் மாறி TIME செயல்பாட்டின் மதிப்பை ஒதுக்குகிறது. குறிப்பு: எக்செல் செயல்பாட்டில் TIME தற்போதைய நேரத்தை வழங்குகிறது.

குறியீடு:

தொடக்க நேரம் = நேரம்

இப்போது இந்த செய்தியை VBA என்ற செய்தி பெட்டியில் காண்பிப்போம்.

குறியீடு:

ஸ்டார்ட் டைம் = நேரம் MsgBox ஸ்டார்ட் டைம்

இப்போது நாம் தூக்க செயல்பாட்டைப் பயன்படுத்தி 10 விநாடிகளுக்கு குறியீட்டை இடைநிறுத்துவோம். நான் சொன்னது போல் குறியீட்டை மில்லி விநாடிகளில் இடைநிறுத்துகிறது, எனவே 10 விநாடிகளுக்கு இடைநிறுத்த 10000 மில்லி விநாடிகளைப் பயன்படுத்த வேண்டும்.

குறியீடு:

 துணை ஸ்லீப்_எக்சாம்பிள் 1 () மங்கலான ஸ்டார்ட் டைம் சரம் மங்கலான எண்ட்டைம் சரம் ஸ்டார்ட் டைம் = நேரம் எம்.எஸ்.ஜி.பாக்ஸ் ஸ்டார்ட் டைம் ஸ்லீப் (10000) எண்ட் சப் 

இப்போது இரண்டாவது மாறி எண்ட்டைமைப் பயன்படுத்தி தற்போதைய நேரத்தை ஒதுக்குங்கள்.

குறியீடு:

 துணை ஸ்லீப்_எக்சாம்பிள் 1 () மங்கலான ஸ்டார்ட் டைம் சரம் மங்கலான எண்ட்டைம் சரம் ஸ்டார்ட் டைம் = நேரம் எம்.எஸ்.ஜி.பாக்ஸ் ஸ்டார்ட் டைம் ஸ்லீப் (10000) எண்ட்டைம் = நேரம் எம்.எஸ்.ஜி.பாக்ஸ் எண்ட்டைம் எண்ட் சப் 

இப்போது இரண்டு மாறிகள் ஆரம்பிக்கும் நேரம் மற்றும் எண்ட்டைம் மேக்ரோ தொடக்க நேரம் மற்றும் முடிவடையும் நேரம் ஆகியவற்றைக் கொண்டிருக்கும். இந்த மேக்ரோவை இயக்கவும், முதலில் மேக்ரோ தொடக்க நேரத்தைக் காண்போம், அதாவது உங்கள் கணினியில் தற்போதைய நேரம்.

சரி என்பதைக் கிளிக் செய்க, அது 10 விநாடிகள் தூங்கும். நீங்கள் இடையக சின்னத்தைக் காணலாம்.

10 விநாடிகளுக்குப் பிறகு அது குறியீட்டை மீண்டும் தொடங்கத் தொடங்கும், இது இறுதி நேரத்தைக் காண்பிக்கும், அதாவது 10 விநாடிகள் காத்திருந்து தற்போதைய நேரம் என்ன.

இப்போது நீங்கள் மேக்ரோ 10:54:14 இல் தொடங்கி 10:54:24 மணிக்கு முடிவடைவதைக் காணலாம், அதாவது சரியாக 10 விநாடி வித்தியாசம் உள்ளது. அந்த 10 வினாடிகளில், VBA குறியீட்டை இயக்குவதை இடைநிறுத்துகிறது.

எடுத்துக்காட்டு # 2 - சுழல்களில் தூக்க செயல்பாடு

VBA இல் உள்ள சுழல்களுடன் தூக்கம் சிறந்தது. எடுத்துக்காட்டாக, VBA இல் Do while loop ஐப் பயன்படுத்தி 1 முதல் 10 வரையிலான வரிசை எண்களைச் செருக விரும்புகிறேன்.

ஒரு எண்ணைச் செருகிய பிறகு எனது குறியீடு 3 வினாடிகள் காத்திருக்க வேண்டும், எனவே லூப் 10 முறை இயங்கும் போது அது மொத்தம் 30 வினாடிகள் இருக்க வேண்டும்.

குறியீடு:

 துணை ஸ்லீப்_எக்சாம்பிள் 2 () மங்கலான கே ஆக முழுக்க முழுக்க கே = 1 செய்யும்போது கே <= 10 கலங்கள் (கே, 1). மதிப்பு = கே.கே = கே + 1 ஸ்லீப் (3000) '1000 மில்லி விநாடிகள் 1 வினாடி, எனவே 3000 3 வினாடிகளுக்கு சமம் லூப் எண்ட் துணை 

இந்த குறியீட்டை இயக்கவும், செயல்முறையை முடிக்க குறைந்தபட்சம் 30 வினாடிகள் காத்திருக்க வேண்டும்.

சரியான நேரத்தைக் கண்காணிக்க கீழேயுள்ள குறியீட்டைப் பயன்படுத்தவும்.

குறியீடு:

 துணை ஸ்லீப்_எக்சாம்பிள் 2 () மங்கலான கே ஸ்ட்ரிங் டிம் ஸ்டார்ட் டைம் ஸ்ட்ரிங் டிம் எண்ட்டைம் ஸ்ட்ரிங் ஸ்டார்ட் டைம் = டைம் எம்.எஸ்.ஜி.பாக்ஸ் "உங்கள் குறியீடு தொடங்கியது" & ஸ்டார்ட் டைம் கே = 1 கே போது கே <= 10 கலங்கள் (கே, 1). மதிப்பு = கே.கே = கே + 1 ஸ்லீப் (3000) '1000 மில்லி சென்ட்கள் 1 வினாடி, எனவே 3000 3 வினாடிகளுக்கு சமம். லூப் எண்ட்டைம் = நேரம் எம்.எஸ்.ஜி.பாக்ஸ் "உங்கள் குறியீடு முடிந்தது" & எண்ட்டைம் எண்ட் சப் 

இந்த குறியீடு உங்களுக்கு 2 செய்தி பெட்டியைக் காண்பிக்கும், முதலாவது தொடக்க நேரத்தையும் இரண்டாவது இரண்டாவது இறுதி நேரத்தையும் காண்பிக்கும்.

குறிப்பு: இந்த குறியீட்டை இயக்கும் போது, ​​நீங்கள் எக்செல் பயன்படுத்த முடியாது, தப்பிக்கும் விசை கூட இயங்காது.