ВБА грешка при преливању - Како их поправити грешка при преливању времена извођења 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: ОверФлов . Да бисмо решили ову грешку, морамо бити потпуно свесни типова података. Вратите се, дакле, основама, добро направите основе, тада ће све доћи на своје место.

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

Занимљиви Чланци...