Error sa Hindi Mismatch na Uri ng VBA (Mga Halimbawa) | Paano Ayusin ang Error sa Run-time 13?

Mag-type ng hindi pagtutugma ng Error o maaari din nating tawagan ito bilang Error code 13 na nangyayari kapag nagtalaga kami ng isang halaga sa isang variable na hindi kabilang sa uri ng data nito, halimbawa, kung magbigay kami ng isang decimal o mahabang halaga sa isang variable na uri ng data ng integer na gagawin namin makaharap sa ganitong error na hindi pagtutugma sa pag-type kapag pinatakbo namin ang code na ipinakita bilang Error Code 13.

Ano ang VBA Type Mismatch Error?

Ang Error ng Vism Type Mismatch sa excel ay isang uri ng "Run Time Error" at ito ang bilang ng 13 error sa kategoryang ito.

Upang simulan ang mga natutunan sa VBA at para sa mga nagsisimula, mahirap hanapin ang error na itinapon ng mga VBA code. Tandaan na ang VBA ay hindi nagtatapon ng isang error sa halip ito ay nagha-highlight lamang ng aming mga pagkakamali habang sinusulat ang code.

Karaniwan kaming nagdideklara ng mga variable at nagtatalaga kami ng mga uri ng data dito. Kapag nagtalaga kami ng isang halaga sa mga variable na iyon kailangan naming tandaan kung anong uri ng data ang maaaring hawakan nito, kung ang itinalagang halaga ay hindi ayon sa uri ng data makukuha namin ang "Run Time Error 13: Type Mismatch".

Paano ayusin ang VBA Type Mismatch Run-time Error 13?

Tingnan natin ang ilang mga halimbawa upang maunawaan ang VBA Type Mismatch Error.

Maaari mong i-download ang VBA Type Mismatch Excel Template dito - VBA Type Mismatch Excel Template

VBA Type Mismatch - Halimbawa # 1

Para sa isang halimbawa tingnan ang sa ibaba VBA code.

Code:

 Sub Type_MisMatch_Example1 () Dim k As Byte k = "Hiii" MsgBox k End Sub 

Inihayag ko ang variable na "k" bilang Byte.

Nangangahulugan ito na ang variable na "k" ay maaaring magkaroon ng mga halaga mula 0 hanggang 255. Ngunit sa susunod na linya, naitalaga ko ang halaga para sa variable na "k" bilang "Hiii".

Napakalinaw nito na ang uri ng data ay hindi maaaring hawakan ang halaga ng isang teksto, kaya narito ang Error sa Mismatch na Uri.

VBA Type Mismatch - Halimbawa # 2

Ngayon tingnan ang isa pang halimbawa na may iba't ibang uri ng data. Tingnan ang code sa ibaba.

Code:

 Sub Type_MisMatch_Example2 () Dim x Bilang Boolean x = 4556 MsgBox x End Sub 

Idineklara namin ang variable na "x" bilang Boolean.

Ang Boolean ay isang uri ng data na maaaring maghawak ng halaga ng alinman sa TUNAY o MALI.

Sa code sa itaas, nagtalaga kami ng halagang 4556, na hindi ayon sa mga halaga ng uri ng data na TAMA o MALI.

Kapag pinatakbo namin ang code na ito maaasahan mo ang isang uri ng hindi pagtutugma na error, ngunit tingnan kung ano ang nangyayari kapag pinatakbo namin ang code na ito.

Dapat ay nagtataka ka kung bakit hindi ito nagbibigay ng error sa run time 13 ng uri ng hindi tamang pagtutugma.

Ang dahilan para dito ay tinatrato ng excel ang lahat ng mga numero bilang TUNAY maliban sa zero. Ang halaga ng zero ay ituturing bilang MALI. Kaya't kung bakit nakuha namin ang resulta bilang TUNAY sa halip na isang error.

Ngayon tingnan ang magtatalaga ako ng isang bilang na may bilang sa teksto.

Code:

 Sub Type_MisMatch_Example2 () Dim x As Boolean x = "4556a" MsgBox x End Sub 

Tiyak na itatapon nito ang Run Time Error 13: Type Mismatch.

VBA Type Mismatch - Halimbawa # 3

Ngayon, tingnan ang code sa ibaba para sa halimbawang ito.

Code:

 Sub Type_MisMatch_Example4 () Dim x Bilang Integer Dim y Bilang String x = 45 y = "2019 Jan" MsgBox x + y End Sub 

Ang variable na "x" ay isang uri ng data ng integer at ang "y" ay isang uri ng data ng string.

X = 45 at y = 2019 Enero

Sa kahon ng mensahe, nagdagdag ako ng x + y.

Ngunit hindi ito ang perpektong code dahil hindi kami maaaring magdagdag ng mga numero na may mga string text. Masasalubong natin ang Run Time Error 13.

VBA Type Mismatch - Halimbawa # 4

Mga Kakaibang Kaso

May mga sitwasyon kung saan pinapatawad ng excel ang maling data na nakatalaga sa variable na uri ng data. Para sa isang halimbawa tingnan ang code sa ibaba.

Code:

 Sub Type_MisMatch_Example3 () Dim x Tulad ng Long Dim y As Long x = 58.85 y = "85" MsgBox x & vbNewLine & y End Sub 

Dalawang idineklarang variable ay "x" & "y".

Para sa variable na ito, ang itinalagang uri ng data ay "Mahaba".

Ang uri ng mahabang data ay tumatanggap lamang ng buong mga numero, hindi mga halagang decimal.

Kaya pangkalahatang pang-unawa ay upang makakuha ng run time error 13 ng uri ng hindi pagkakatugma na error.

Ngunit tingnan natin kung ano ang mangyayari kapag pinatakbo namin ang code na ito.

Wow !!! Nakuha namin ang mga halagang bilang 59 & 85.

Ito ay sapagkat babaguhin ng VBA ang decimal na halaga na 58.85 sa pinakamalapit na halaga ng integer at kahit na ang mga numero ay nakapaloob na may dobleng mga quote pa rin ito nagko-convert sa integer na halaga lamang.