ВБА грешка при преливању | Како их поправити грешка при преливању времена извођења 6?

Екцел ВБА грешка при преливању

Грешке су саставни део било ког кодирајућег језика, али откривање зашто долази до те грешке је оно што вас издваја од гомиле у интервјуима. Грешке нису необичне за ВБА кодирање, грешке нису намерне, па је проналажење узрока грешке тежак задатак. У ВБА имамо неке од унапред дефинисаних грешака и ако знате за њих, грешку врло брзо поправљате. У овом чланку ћемо вам показати РУН ТИМЕ ЕРРОР 6: ОверФлов. Пратите цео чланак да бисте сазнали више о грешци, разлозима грешке у преливању ВБА и како их исправити.

Шта је грешка у времену извођења 6: грешка преливања у ВБА?

Када декларишемо променљиву, додељујемо им тип података. Требали бисмо бити потпуно свесни предности и недостатака сваке врсте података. Овде се појављује Грешка у времену извођења 6: ОверФлов. Када тип података преоптеретимо вредношћу која је већа од капацитета типа података, добићемо ову грешку.

На пример: Ако променљиву декларишете као Бајт.

Затамњени број као бајт

Бајтни тип података може садржати вредности од 0 до 255. Сада ћу вредност доделити као 240.

Број = 240

Ово би требало да функционише у реду, јер је вредност коју смо доделили мања од ограничења вредности Бајта од 255. У тренутку када доделимо вредност већу од 255, то доводи до грешке Грешка времена извођења 6: Преливање.

Ово је општи преглед грешке у времену извођења 6: ОверФлов. Неке примере ћемо видети детаљно.

Примери грешке у времену извођења 6: Преливање у ВБА

Погледајмо неке примере ВБА грешке при преливању у програму Екцел.

Пример 1: Грешка при преливању са бајт типом података

Као што сам рекао, важно је знати за и против ВБА типа података који ћемо користити. За пример погледајте доњи код.

Шифра:

 Суб ОверФловЕррор_Екампле1 () Дим Нумбер ас Бите Нумбер = 256 МсгБок Нумбер Енд Суб 

За променљиву „Нумбер“ доделио сам вредност као 256. Када покренем овај код, добићемо доњу грешку.

То је зато што је тип података Бајт може да садржи вредности од 0 до 255. Дакле, то узрокује грешку. Да бисмо исправили грешку, морамо променити тип података или морамо смањити вредност коју смо доделили променљивој „Број“.

Пример 2: ВБА грешка при преливању са целобројним типом података

ВБА цео број је тип података који може да садржи вредности од -32768 до 32767. Пример потражите у доњем коду.

Шифра:

 Суб ОверФловЕррор_Екампле2 () Затамни МиВалуе као целобројно МиВалуе = 25656 МсгБок МиВалуе Енд Суб 

Када покренем овај код, добићемо вредност променљиве „МиВалуе“ у оквиру за поруке, тј. 25656.

Сада ћу број доделити променљивој као „45654“.

Шифра:

 Суб ОверФловЕррор_Екампле2 () Затамни МиВалуе као целобројно МиВалуе = 45654 МсгБок МиВалуе Енд Суб 

Ако покушам да покренем код, то ће изазвати грешку, јер тип података који смо декларисали може садржати највише 32767 за позитивне бројеве, а за негативне бројеве је -32768.

Пример 3: ВБА грешка при преливању са дугим типом података

Дуги тип података је најчешће коришћени тип података у програму Екцел ВБА. Ово може имати вредности од –2,147,483,648 до 2,147,486,647. Све изнад тога ће изазвати грешку.

Шифра:

 Суб ОверФловЕррор_Екампле3 () Дим МиВалуе ас Лонг МиВалуе = 5000 * 457 МсгБок МиВалуе Енд Суб 

То ће проузроковати грешку преливања.

Да бисмо решили овај проблем, морамо да користимо функцију ЦЛНГ у ВБА. Испод је пример истог.

Шифра:

 Суб ОверФловЕррор_Екампле3 () Дим МиВалуе ас Лонг МиВалуе = ЦЛнг (5000) * 457 МсгБок МиВалуе Енд Суб 

Ово би требало радити.

Ово је преглед грешке у времену извођења 6: ОверФлов. Да бисмо решили ову грешку, морамо бити потпуно свесни типова података. Дакле, вратите се основама, направите основе како треба, тада ће све доћи на своје место.

Овде можете преузети овај ВБА образац грешке при преливању са Екцел-ом - ВБА образац за грешку при преливању у Екцел-у