Kuidas lahendada VBA viga "Tuvastati mitmetähenduslik nimi"

Lang L: none (table-of-contents)

VBA -ga töötades võite protseduuri käivitamisel kuvada selle veateate. See tõrge ütleb: "Tuvastati mitmetähenduslik nimi: protseduuri nimi". Selles artiklis õpime, miks see viga ilmneb ja kuidas seda lahendada.

Miks see viga?

Nagu hüpikaknas öeldakse, on VBA mootor tuvastanud samas moodulis ühe või mitu sama nimega protseduuri. See on tekitanud VBA mootori jaoks segadust. Seetõttu teatab VBA veast.

Kuidas seda probleemi lahendada?

See on lihtne. Ärge kasutage ühes moodulis kahte sama nimega protseduuri. Muutke protseduuri nime, kustutage see või viige see mõnda teise moodulisse.

See viga ilmneb tavaliselt töötades sündmused Excelis.

Oletame, et töötate lehe 1 juures töölehe sündmustega. Nüüd soovite käivitada sõnumi kohe, kui kasutaja muudab lahtrivalikut. Sel juhul kasutate sündmust Worksheet_SelectionChange ().

Nüüd soovite uuesti kasutajatelt küsida, kui kasutaja muudab lahtrite valikut. Siis peate kasutama sama sündmust. Nüüd olete erinevate ülesannete jaoks kirjutanud kaks sündmuste käsitlemise protseduuri.

Privaatne alamlehe_valiku muutmine (vahemiku sihtmärk) 

Nüüd, kui muudate lehe valikut, saate selle.

Nüüd, kui muudate lehe valikut, saate selle.

Näete, asi on selles, et Excel ei luba seda. Moodulis ei saa olla kahte või enamat sama nimega funktsiooni. Isegi mitte sündmustes. See viib ebaselguseni.

Nüüd, kui soovite sama sündmuse jaoks teha erinevat ülesannet, peate selle koodi sisestama samasse sündmuseprotseduuri. Kasutage sündmuste juhtimiseks tingimusi.

Allolev sündmus töötab suurepäraselt. Kui kasutaja muudab lehel1 lahtrivalikut, avaneb see hi -up teade ja pärast seda küsib kasutaja sisendkastiga küsimuse.

Privaatne alamtööleht_SelectionChange (ByVal Target As Range) MsgBox "Tere" Application.InputBox ("kes sa oled?") Lõpu alam 

Nüüd, kui ebaselgus on kadunud, töötab sündmus suurepäraselt ja te ei saa enam viga mitmetimõistetava nime tuvastatud veast.

Nii et jah, poisid, nii saate lahendada Excel VBA mitmetähenduslikkuse vea. Loodan, et sellest oli abi. Kui teil on selle artikli või mõne muu artikli osas kahtlusi, küsige seda allpool kommentaaride jaotises.

Viide Kas kehtiv Exceli viga ja kuidas seda lahendada? : See tõrge ilmneb siis, kui viidatakse objektile või asukohale, mida pole olemas või mis on muutunud. Selle probleemi lahendamiseks jälgime viidet.

Sündmused Excelis VBA | Excelis on seitset tüüpi sündmusi. Iga sündmus käsitleb erinevat ulatust. Rakendussündmus käsitleb töövihiku taset. Töövihik lehe tasandil. Töölehe sündmus vahemiku tasemel.

Töölehe sündmused Excel VBA -s | Töölehe sündmused on tõesti kasulikud, kui soovite oma makrosid käivitada, kui lehel toimub teatud sündmus.

Töövihikuüritused, kasutades Microsoft Excelis VBA -d | Töövihikuüritused töötavad kogu töövihiku kallal. Kuna kõik lehed on osa töövihikust, töötavad need sündmused ka nende kallal.

Vältige automaatse makro/sündmuse makro käivitamist, kasutades Microsoft Excelis VBA -d | Auto_open makro käivitamise vältimiseks kasutage tõstuklahvi.

Diagrammige objekti sündmused Microsoft Excelis VBA abil | Diagrammid on keerulised objektid ja neile on lisatud mitu komponenti. Diagrammi sündmuste tegemiseks kasutame klassi moodulit.

Populaarsed artiklid:

50 Exceli otseteed tootlikkuse suurendamiseks | Saa oma ülesandega kiiremini hakkama. Need 50 otseteed muudavad teie töö Excelis veelgi kiiremaks.

Funktsioon VLOOKUP Excelis | See on üks enim kasutatud ja populaarsemaid Exceli funktsioone, mida kasutatakse erinevate vahemike ja lehtede väärtuse otsimiseks.

COUNTIF Excelis 2016 | Loendage väärtused tingimustega, kasutades seda hämmastavat funktsiooni. Te ei pea konkreetse väärtuse loendamiseks oma andmeid filtreerima. Countif funktsioon on armatuurlaua ettevalmistamisel hädavajalik.

Funktsiooni SUMIF kasutamine Excelis | See on veel üks armatuurlaua oluline funktsioon. See aitab teil teatud tingimustel väärtusi kokku võtta.

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave