ভিবিএ প্রকারের অমিল ত্রুটি (উদাহরণ) | রান-টাইম ত্রুটি 13 কীভাবে ঠিক করবেন?

অমিল ত্রুটি টাইপ করুন বা আমরা এটিকে ত্রুটি কোড 13 হিসাবেও বলতে পারি, এটি ঘটে যখন আমরা কোনও ভেরিয়েবলের কোনও মান নির্ধারণ করি যা এর ডেটা টাইপের নয়, উদাহরণস্বরূপ, আমরা যদি একটি পূর্ণসংখ্যার ডেটা টাইপের ভেরিয়েবলের দশমিক বা দীর্ঘ মান সরবরাহ করি তবে যখন আমরা কোডটি চালিত করি যা ত্রুটি কোড 13 হিসাবে প্রদর্শিত হয় তখন এই প্রকারের অমিল ত্রুটির মুখোমুখি।

ভিবিএ টাইপ মিসমেচ ত্রুটিটি কী?

এক্সএল-তে ভিবিএ টাইপ মিসমেচ ত্রুটি এক ধরণের "রান টাইম ত্রুটি" এবং এটি এই বিভাগে 13 নম্বর ত্রুটি।

ভিবিএতে এবং শিক্ষানবিশদের শিখতে শুরু করার জন্য, ভিবিএ কোডগুলি দ্বারা ত্রুটিযুক্ত ত্রুটিটি খুঁজে পাওয়া শক্ত। মনে রাখবেন ভিবিএ কোনও ত্রুটি ছুঁড়েছে না কোডটি লেখার সময় এটি কেবল আমাদের ভুলগুলি তুলে ধরেছে।

আমরা সাধারণত ভেরিয়েবলগুলি ঘোষণা করি এবং আমরা এটিতে ডেটা প্রকারগুলি নির্দিষ্ট করি। যখন আমরা এই ভেরিয়েবলগুলিকে একটি মান নির্ধারণ করি তখন আমাদের কী ধরণের ডেটা ধরে রাখতে পারে তা আমাদের মনে রাখতে হবে, যদি নির্ধারিত মান ডেটা টাইপ অনুসারে না হয় তবে আমরা "রান টাইম ত্রুটি 13: টাইপ মিসম্যাচ" পাব।

ভিবিএ টাইপ মিসট্যাচ রান-টাইম ত্রুটি 13 কীভাবে ঠিক করবেন?

আসুন এই ভিবিএ টাইপ মিসমেচ ত্রুটিটি বুঝতে কিছু উদাহরণ দেখতে দিন।

আপনি এই ভিবিএ টাইপ মিসম্যাচ এক্সেল টেম্পলেটটি এখানে ডাউনলোড করতে পারেন - ভিবিএ টাইপ মিস্যাচলে এক্সেল টেম্পলেট

ভিবিএ টাইপ মিল নেই - উদাহরণ # 1

উদাহরণস্বরূপ নীচের ভিবিএ কোডটি দেখুন।

কোড:

 সাব টাইপ_মিসম্যাচ_একটি নমুনা 1 () Dim k As Byte k = "Hiii" MsgBox k শেষ সাব 

আমি ভেরিয়েবলটি “কে” বাইট হিসাবে ঘোষণা করেছি।

এর অর্থ হল ভেরিয়েবল "কে" 0 থেকে 255 পর্যন্ত মান ধরে রাখতে পারে But তবে পরের লাইনে আমি "কে" ভেরিয়েবলের মান "হাইইআই" হিসাবে নির্ধারণ করেছি।

এটি খুব স্পষ্ট যে ডেটা টাইপ কোনও পাঠ্যের মান ধরে রাখতে পারে না, তাই এখানে मिस টাইম ত্রুটি টাইপ আসে।

ভিবিএ টাইপ মিল নেই - উদাহরণ # 2

এখন ভিন্ন একটি ডেটা ধরণের সাথে আরও একটি উদাহরণ দেখুন। নীচের কোডটি দেখুন।

কোড:

 সাব টাইপ_মিসম্যাচ_একটি নমুনা 2 () বুলিয়ান এক্স হিসাবে 45 মিমি বক্স = 4556 এমএসবিবক্স এক্স শেষ উপ 

আমরা ভেরিয়েবলটি "এক্স" বুলিয়ান হিসাবে ঘোষণা করেছি।

বুলিয়ান একটি ডেটা টাইপ যা সত্য বা মিথ্যা উভয়ের মান ধরে রাখতে পারে।

উপরের কোডে, আমরা 4556 এর মান নির্ধারণ করেছি, যা সত্য বা ফলসের ডাটা টাইপের মান অনুসারে নয়।

আমরা এই কোডটি চালানোর সময় আপনি কোনও প্রকারের অমিল ত্রুটি আশা করতে পারেন, তবে দেখুন যখন আমরা এই কোডটি চালাই তখন কী হয়।

আপনি নিশ্চয়ই ভাবছেন যে এইটি 13 টির মতো অমিলের ত্রুটিটি রান টাইম ত্রুটিটি কেন দেয় না।

এর কারণটি এক্সেল হ'ল শূন্য ব্যতীত সমস্ত সংখ্যাকে সত্য হিসাবে গণ্য করে। জিরো মানটি মিথ্যা হিসাবে গণ্য হবে। সুতরাং আমরা একটি ত্রুটির পরিবর্তে সত্য হিসাবে ফলাফল পেয়েছি।

এখন দেখুন আমি পাঠ্যের সাথে একটি সংখ্যার মান নির্ধারণ করব।

কোড:

 সাব টাইপ_মিসম্যাচ_একটি নমুনা 2 () বুলিয়ান এক্স হিসাবে দিম x = "4556a" এমএসজিবক্স এক্স শেষ উপ 

এটি অবশ্যই রান সময় ত্রুটি 13 ছুঁড়ে ফেলবে: টাইপ মিসর্ম্যাচ।

ভিবিএ টাইপ মেলেনি - উদাহরণ # 3

এখন, এই উদাহরণের জন্য নীচের কোডটি দেখুন।

কোড:

 সাব টাইপ_মিসম্যাচ_একটি নমুনা 4 () ধীরে ধীরে এক্স হিসাবে পূর্ণসংখ্যার ধিম y স্ট্রিং x = 45 y = "2019 জানুয়ারী" MsgBox x + y শেষ সাব 

পরিবর্তনশীল "x" একটি পূর্ণসংখ্যা ডেটা টাইপ এবং "y" একটি স্ট্রিং ডেটা টাইপ।

এক্স = 45 এবং y = 2019 জানুয়ারী

বার্তা বাক্সে, আমি x + y যোগ করেছি।

তবে এটি সঠিক কোড নয় কারণ আমরা স্ট্রিং টেক্সট সহ সংখ্যা যুক্ত করতে পারি না। আমরা রান টাইম ত্রুটির 13 এর মুখোমুখি হব।

ভিবিএ টাইপ মিল নেই - উদাহরণ # 4

ব্যতিক্রমী মামলা

এমন পরিস্থিতি রয়েছে যেখানে এক্সেল ভেরিয়েবল ডেটা টাইপের জন্য নির্ধারিত ভুল ডেটা ক্ষমা করে দেয়। উদাহরণস্বরূপ নীচের কোডটি দেখুন।

কোড:

 সাব টাইপ_মিসম্যাচ_একটি নমুনা 3 () ডিম x যত লম্বা ডিমে ওয়াস লম্বা x = 58.85 y = "85" এমএসজিবক্স এক্স & ভিবি নিউলাইন এবং y শেষ উপ 

দুটি ঘোষিত ভেরিয়েবল হ'ল "x" এবং "y"।

এই ভেরিয়েবলের জন্য, নির্ধারিত ডেটা টাইপ হ'ল "লম্বা"।

দীর্ঘ তথ্য প্রকার দশমিক মানগুলি না করে কেবল পুরো সংখ্যা গ্রহণ করে।

সুতরাং সাধারণ উপলব্ধিটি হ'ল 13 টির মধ্যে মিলের ত্রুটিযুক্ত টাইমের ত্রুটি পাওয়া যায়।

তবে আসুন আমরা এই কোডটি চালানোর পরে কী হয় তা দেখা যাক।

কি দারুন!!! আমরা 59 এবং 85 হিসাবে মান পেয়েছি।

কারণ ভিবিএ দশমিক মান 58.85 কে নিকটতম পূর্ণসংখ্যার মানতে রূপান্তর করবে এবং সংখ্যাগুলি ডাবল উদ্ধৃতিতে আবদ্ধ থাকা সত্ত্বেও এটি কেবল পূর্ণসংখ্য মানকে রূপান্তর করে।