VBA రకం సరిపోలని లోపం (ఉదాహరణలు) | రన్-టైమ్ లోపం 13 ను ఎలా పరిష్కరించాలి?
సరిపోలని లోపం అని టైప్ చేయండి లేదా మనం దానిని లోపం కోడ్ 13 అని కూడా పిలుస్తాము, దాని డేటా రకానికి చెందిన వేరియబుల్కు విలువను కేటాయించినప్పుడు ఇది సంభవిస్తుంది, ఉదాహరణకు, మనం పూర్ణాంక డేటా రకం వేరియబుల్కు దశాంశ లేదా దీర్ఘ విలువను అందిస్తే లోపం కోడ్ 13 గా చూపబడిన కోడ్ను మేము అమలు చేస్తున్నప్పుడు ఈ రకం అసమతుల్య లోపాన్ని ఎదుర్కోండి.
VBA రకం సరిపోలని లోపం అంటే ఏమిటి?
ఎక్సెల్ లో VBA టైప్ అసమతుల్యత లోపం “రన్ టైమ్ ఎర్రర్” రకం మరియు ఇది ఈ వర్గంలో 13 వ సంఖ్య లోపం.
VBA లోని అభ్యాసాలను ప్రారంభించడానికి మరియు ప్రారంభకులకు, VBA సంకేతాలు విసిరిన లోపాన్ని కనుగొనడం కష్టం. VBA లోపం విసిరేయడం లేదని గుర్తుంచుకోండి, ఇది కోడ్ రాసేటప్పుడు మన తప్పులను హైలైట్ చేస్తుంది.
మేము సాధారణంగా వేరియబుల్స్ డిక్లేర్ చేస్తాము మరియు దానికి డేటా రకాలను కేటాయిస్తాము. మేము ఆ వేరియబుల్స్కు ఒక విలువను కేటాయించినప్పుడు, అది ఏ విధమైన డేటాను కలిగి ఉందో మనం గుర్తుంచుకోవాలి, కేటాయించిన విలువ డేటా రకం ప్రకారం కాకపోతే మనకు “రన్ టైమ్ ఎర్రర్ 13: టైప్ అసమతుల్యత” లభిస్తుంది.
VBA రకం సరిపోలని రన్-టైమ్ లోపం 13 ను ఎలా పరిష్కరించాలి?
ఈ VBA రకం అసమతుల్య లోపాన్ని అర్థం చేసుకోవడానికి కొన్ని ఉదాహరణలు చూద్దాం.
మీరు ఈ VBA రకం సరిపోలని ఎక్సెల్ మూసను ఇక్కడ డౌన్లోడ్ చేసుకోవచ్చు - VBA రకం సరిపోలని ఎక్సెల్ మూసVBA రకం అసమతుల్యత - ఉదాహరణ # 1
ఉదాహరణకు దిగువ VBA కోడ్ను చూడండి.
కోడ్:
ఉప రకం_మిస్మాచ్_ఎక్సాంపుల్ 1 () మసకబారిన బైట్ k = "హాయ్" MsgBox k ఎండ్ సబ్
నేను వేరియబుల్ “k” ను బైట్ గా ప్రకటించాను.
దీని అర్థం వేరియబుల్ “k” 0 నుండి 255 వరకు విలువలను కలిగి ఉంటుంది. కాని తరువాతి పంక్తిలో, “k” వేరియబుల్ కోసం విలువను “Hiii” గా కేటాయించాను.
డేటా రకం టెక్స్ట్ యొక్క విలువను కలిగి ఉండదని చాలా స్పష్టంగా ఉంది, కాబట్టి ఇక్కడ టైప్ అసమతుల్య లోపం వస్తుంది.
VBA రకం అసమతుల్యత - ఉదాహరణ # 2
ఇప్పుడు వేరే డేటా రకంతో మరో ఉదాహరణను చూడండి. క్రింది కోడ్ చూడండి.
కోడ్:
ఉప రకం_మిస్మాచ్_ఎక్సాంపుల్ 2 () మసక x బూలియన్ x = 4556 MsgBox x ఎండ్ సబ్
మేము వేరియబుల్ “x” ను బూలియన్ గా ప్రకటించాము.
బూలియన్ అనేది డేటా రకం, ఇది ఒప్పు లేదా తప్పు యొక్క విలువను కలిగి ఉంటుంది.
పై కోడ్లో, మేము 4556 విలువను కేటాయించాము, ఇది TRUE లేదా FALSE యొక్క డేటా రకం విలువల ప్రకారం కాదు.
మేము ఈ కోడ్ను అమలు చేస్తున్నప్పుడు మీరు టైప్ అసమతుల్య లోపాన్ని ఆశించవచ్చు, కాని మేము ఈ కోడ్ను అమలు చేసినప్పుడు ఏమి జరుగుతుందో చూడండి.
టైప్ అసమతుల్యత లోపం యొక్క రన్ టైమ్ లోపం 13 ను ఎందుకు ఇవ్వలేదని మీరు ఆలోచిస్తూ ఉండాలి.
దీనికి కారణం ఎక్సెల్ సున్నా మినహా అన్ని సంఖ్యలను ఒప్పుగా పరిగణిస్తుంది. సున్నా విలువ తప్పుగా పరిగణించబడుతుంది. అందువల్ల లోపం లోపానికి బదులుగా ట్రూగా ఫలితాన్ని పొందాము.
ఇప్పుడు నేను టెక్స్ట్తో సంఖ్యా విలువను కేటాయిస్తాను.
కోడ్:
ఉప రకం_మిస్మాచ్_ఎక్సాంపుల్ 2 () మసక x బూలియన్ x = "4556a" MsgBox x ఎండ్ సబ్
ఇది ఖచ్చితంగా రన్ టైమ్ లోపం 13: టైప్ అసమతుల్యత.
VBA రకం అసమతుల్యత - ఉదాహరణ # 3
ఇప్పుడు, ఈ ఉదాహరణ కోసం క్రింది కోడ్ చూడండి.
కోడ్:
ఉప రకం_మిస్మాచ్_ఎక్సాంపుల్ 4 () డిమ్ x యాస్ ఇంటీజర్ డిమ్ వై యాస్ స్ట్రింగ్ x = 45 వై = "2019 జనవరి" MsgBox x + y ఎండ్ సబ్
వేరియబుల్ “x” అనేది పూర్ణాంక డేటా రకం మరియు “y” అనేది స్ట్రింగ్ డేటా రకం.
X = 45 మరియు y = 2019 జనవరి.
సందేశ పెట్టెలో, నేను x + y ని జోడించాను.
కానీ ఇది సరైన కోడ్ కాదు ఎందుకంటే మేము స్ట్రింగ్ పాఠాలతో సంఖ్యలను జోడించలేము. మేము రన్ టైమ్ లోపం 13 ను ఎదుర్కొంటాము.
VBA రకం అసమతుల్యత - ఉదాహరణ # 4
అసాధారణమైన కేసులు
ఎక్సెల్ వేరియబుల్ డేటా రకానికి కేటాయించిన తప్పు డేటాను క్షమించే పరిస్థితులు ఉన్నాయి. ఉదాహరణకు ఈ క్రింది కోడ్ను చూడండి.
కోడ్:
ఉప రకం_మిస్మాచ్_ఎక్సాంపుల్ 3 () డిమ్ x లాంగ్ డిమ్ వై యాస్ లాంగ్ x = 58.85 వై = "85" MsgBox x & vbNewLine & y ఎండ్ సబ్
రెండు డిక్లేర్డ్ వేరియబుల్స్ “x” & “y”.
ఈ వేరియబుల్ కోసం, కేటాయించిన డేటా రకం “లాంగ్”.
దీర్ఘ డేటా రకం దశాంశ విలువలు కాకుండా మొత్తం సంఖ్యలను మాత్రమే అంగీకరిస్తుంది.
కాబట్టి టైప్ అసమతుల్యత లోపం యొక్క రన్ టైమ్ ఎర్రర్ 13 ను పొందడం సాధారణ అవగాహన.
మేము ఈ కోడ్ను అమలు చేస్తున్నప్పుడు ఏమి జరుగుతుందో చూద్దాం.
వావ్ !!! మాకు విలువలు 59 & 85 గా వచ్చాయి.
ఎందుకంటే VBA దశాంశ విలువ 58.85 ని సమీప పూర్ణాంక విలువగా మారుస్తుంది మరియు సంఖ్యలు డబుల్ కోట్లతో జతచేయబడినప్పటికీ, అది పూర్ణాంక విలువకు మాత్రమే మారుతుంది.