మీ మాక్రో కోడ్‌ను పాజ్ చేయడానికి ఎక్సెల్ VBA స్లీప్ ఫంక్షన్

ఎక్సెల్ VBA స్లీప్ ఫంక్షన్

VBA స్లీప్ ఫంక్షన్ అనేది విండోస్ డిఎల్ఎల్ ఫైళ్ళ క్రింద ఉన్న విండోస్ ఫంక్షన్, ఇది మాక్రో విధానాన్ని నిర్దిష్ట సమయం వరకు అమలు చేయకుండా ఆపడానికి లేదా పాజ్ చేయడానికి ఉపయోగించబడుతుంది, ఆ తర్వాత మనం ప్రోగ్రామ్‌ను తిరిగి ప్రారంభించవచ్చు.

ఇతర సెట్ల పనులను పూర్తి చేయడానికి మా స్థూల రన్నింగ్ ప్రాసెస్‌ను పాజ్ చేయాల్సిన పరిస్థితులు ఉన్నాయి. ఇతర పనుల సెట్లు మా కోడింగ్‌లో భాగం కావచ్చు లేదా ఇతర స్థూల విధానంలో భాగం కావచ్చు లేదా ప్రస్తుత ఎక్సెల్ మాక్రో కోసం ఇన్‌పుట్ కావచ్చు. ప్రోగ్రామ్ నడుస్తున్నప్పుడు మీరు దాన్ని ఎలా పాజ్ చేయవచ్చు? వినియోగదారు పేర్కొన్న కొంత సమయం వరకు మేము విధాన నియమావళిని పాజ్ చేయవచ్చు మరియు కొంత సమయం తరువాత మేము ప్రోగ్రామ్ను తిరిగి ప్రారంభించవచ్చు. SLEEP ఫంక్షన్‌ను ఉపయోగించడం ద్వారా మేము దీన్ని VBA లో చేయవచ్చు.

VBA స్లీప్ ఫంక్షన్ ఏమి చేస్తుంది?

“కొంతకాలం నిద్రపోండి”, “కొంత సమయం విశ్రాంతి”, “కొంతకాలం విరామం ఇవ్వండి”, కొంత సమయం కేటాయించండి ”మొదలైనవాటిని స్లీప్ చేయండి. స్లీప్ ఫంక్షన్ వినియోగదారులు మాక్రో కోడ్‌ను మిల్లీసెకన్ల వరకు పాజ్ చేయడానికి అనుమతిస్తుంది. దీన్ని ఉపయోగించి మేము స్థూల కోడ్ ప్రక్రియను ఆలస్యం చేయవచ్చు.

మాకు SLEEP అని పిలువబడే అంతర్నిర్మిత ఫంక్షన్ ఉందని మీరు అనుకుంటే, మీరు తప్పు ఎందుకంటే VBA లో అలాంటి ఫంక్షన్ లేదు, అయితే మనకు విండోస్ ఫంక్షన్‌గా స్లీప్ అనే ఫంక్షన్ ఉంది. ప్రత్యేకమైన కోడ్‌ను నమోదు చేయడం ద్వారా మనం ఈ ఫంక్షన్‌ను VBA లో పిలుస్తాము. వాస్తవానికి, ఇది విండోస్ డిఎల్ఎల్ ఫైళ్ళలో ఉన్న ఒక ఫంక్షన్, కాబట్టి మేము vba లో సబ్‌ట్రౌటిన్ ప్రారంభానికి ముందు API యొక్క నామకరణాన్ని ప్రకటించాలి.

క్రింద VBA కోడ్ ఉంది.

కోడ్:

# ఒకవేళ VBA7 అప్పుడు పబ్లిక్ డిక్లేర్ PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds as LongPtr) 'ఎక్సెల్ యొక్క 64-బిట్ వెర్షన్ల కోసం ఎక్సెల్ # ఉంటే 

మీరు స్థూల సంకేతాలను రాయడం ప్రారంభించడానికి ముందు పైన కాపీ చేసి మీ మాడ్యూల్‌లో అతికించండి. ఇది మీ మాడ్యూల్‌లో ఇలా అతికించాలి.

ఉదాహరణ

కోడ్ వ్రాసే విధానాన్ని నేను మీకు చూపించే ముందు నిద్ర పనితీరు గురించి కొంచెం ఎక్కువ తెలియజేస్తాను. ఇది ప్రక్రియను మిల్లీసెకన్లలో ఆలస్యం చేస్తుంది. కాబట్టి 1 సెకను 1000 మిల్లీసెకన్లకు సమానం, మీరు 10 సెకన్ల పాటు పాజ్ చేయాలనుకుంటే అది 10000 మిల్లీసెకన్లు ఉండాలి.

మీరు ఈ VBA స్లీప్ ఎక్సెల్ మూసను ఇక్కడ డౌన్‌లోడ్ చేసుకోవచ్చు - VBA స్లీప్ ఎక్సెల్ మూస

ఉదాహరణ # 1

ఉప విధానం ప్రారంభానికి ముందు API కోడ్ అతికించిన తర్వాత, స్థూల పేరును సృష్టించండి.

కోడ్:

# సబ్ స్లీప్_ఎక్సంపుల్ 1 () ఎండ్ సబ్ 

రెండు వేరియబుల్స్ ను స్ట్రింగ్ గా ప్రకటించండి.

కోడ్:

 డిమ్ స్టార్ట్‌టైమ్ స్ట్రింగ్ డిమ్ ఎండ్‌టైమ్ స్ట్రింగ్ 

కోసం స్టార్ట్‌టైమ్ వేరియబుల్ TIME ఫంక్షన్ విలువను కేటాయిస్తుంది. గమనిక: ఎక్సెల్ ఫంక్షన్‌లో TIME ప్రస్తుత సమయాన్ని అందిస్తుంది.

కోడ్:

ప్రారంభ సమయం = సమయం

ఇప్పుడు మేము ఈ సందేశాన్ని సందేశ పెట్టె VBA లో ప్రదర్శిస్తాము.

కోడ్:

StartTime = సమయం MsgBox StartTime

ఇప్పుడు మనం స్లీప్ ఫంక్షన్‌ను ఉపయోగించి 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 () మసకబారిన k = 1 అయితే k <= 10 కణాలు (k, 1) .వాల్యూ = kk = k + 1 స్లీప్ (3000) '1000 మిల్లీసెకన్లు 1 సెకను కాబట్టి 3000 3 సెకన్లకు సమానం లూప్ ఎండ్ ఉప 

ఈ కోడ్‌ను అమలు చేయండి మరియు మీరు ప్రక్రియను పూర్తి చేయడానికి కనీసం 30 సెకన్ల వరకు వేచి ఉండాలి.

ఖచ్చితమైన సమయాన్ని తెలుసుకోవడానికి క్రింది కోడ్‌ను ఉపయోగించండి.

కోడ్:

 సబ్ స్లీప్_ఎక్సాంపుల్ 2 () డిమ్ కె స్ట్రింగ్ డిమ్ ఎండ్‌టైమ్‌గా స్ట్రింగ్ డిమ్‌ ఎండ్‌టైమ్‌గా స్ట్రింగ్ స్టార్ట్‌టైమ్ = టైమ్ ఎంఎస్‌జిబాక్స్ "మీ కోడ్ ప్రారంభమైంది" & స్టార్ట్‌టైమ్ కె = 1 కె <= 10 సెల్స్ (కె, 1) అయితే .వాల్యూ = కెకె = కె + 1 స్లీప్ (3000) '1000 మిల్లీసెండ్స్ 1 సెకను కాబట్టి 3000 3 సెకన్లకు సమానం లూప్ ఎండ్‌టైమ్ = టైమ్ ఎంఎస్‌బిబాక్స్ "మీ కోడ్ ఎండ్ ఎండ్" & ఎండ్‌టైమ్ ఎండ్ సబ్ 

ఈ కోడ్ మీకు 2 సందేశ పెట్టెను ప్రదర్శిస్తుంది, మొదటిది ప్రారంభ సమయాన్ని చూపుతుంది మరియు రెండవది ముగింపు సమయాన్ని చూపుతుంది.

గమనిక: ఈ కోడ్‌ను నడుపుతున్నప్పుడు, మీరు ఎక్సెల్ ఉపయోగించలేరు, ఎస్కేప్ కీ కూడా పనిచేయదు.