Hoe de "Ambigue naam gedetecteerd" VBA-fout op te lossen?

Anonim

Tijdens het werken met VBA kunt u deze foutmelding krijgen wanneer u de procedure uitvoert. Deze fout zegt "Ambigue naam gedetecteerd: procedurenaam:". In dit artikel zullen we leren waarom deze fout optreedt en hoe we deze kunnen oplossen.

Waarom deze fout?

Zoals de pop-up zegt, heeft de VBA-engine een of meer procedures met dezelfde naam in dezelfde module gedetecteerd. Dit heeft geleid tot verwarring voor de VBA-engine. Vandaar dat de VBA de fout meldt.

Hoe dit probleem op te lossen?

Het is makkelijk. Gebruik geen twee dezelfde procedures met dezelfde naam in één module. Wijzig de naam van de procedure, verwijder deze of breng deze naar een andere module.

Deze fout verschijnt meestal tijdens het werken met gebeurtenissen in Excel.

Laten we zeggen dat u aan blad1 werkt met werkbladgebeurtenissen. Nu wilt u een bericht activeren zodra de gebruiker de celselectie wijzigt. In dat geval gebruik je de Worksheet_SelectionChange() Event.

Nu wil je weer wat vragen aan de gebruikers stellen als de gebruiker de celselectie verandert. Dan moet je dezelfde gebeurtenis gebruiken. U hebt nu twee gebeurtenisafhandelingsprocedures voor verschillende taken geschreven.

Private Sub Worksheet_SelectionChange (ByVal Target As Range) MsgBox "Hallo" End Sub Private Sub Worksheet_SelectionChange (ByVal Target As Range) Application.InputBox ("wie ben jij?") End Sub 

Als u nu de selectie op het blad wijzigt, krijgt u dit.

Als u nu de selectie op het blad wijzigt, krijgt u dit.

Kijk, het punt is dat Excel dit niet toestaat. U kunt niet twee of meer dezelfde namen van functies in een module hebben. Ook niet in Evenementen. Het leidt tot onduidelijkheid.

Als je nu een andere taak op dezelfde gebeurtenis wilt doen, dan moet je die code in dezelfde ene gebeurtenisprocedure plaatsen. Gebruik voorwaarden om de gebeurtenissen te controleren.

Het onderstaande evenement zal prima werken. Wanneer de gebruiker de celselectie op blad1 wijzigt, verschijnt er een hallo-bericht en daarna wordt de gebruiker een vraag gesteld met een invoervak.

Private Sub Worksheet_SelectionChange (ByVal Target As Range) MsgBox "Hallo" Application.InputBox ("wie ben jij?") End Sub 

Nu de ambiguïteit weg is, werkt de gebeurtenis prima en krijg je de fout ambigue naam gedetecteerde fout niet meer.

Dus ja jongens, dit is hoe je de dubbelzinnigheidsfout in Excel VBA kunt oplossen. Ik hoop dat dit nuttig was. Als je twijfels hebt over dit artikel of een ander artikel, vraag het me dan in de comments hieronder.

Referentie Is geen geldige Excel-fout en hoe dit op te lossen? : Deze fout treedt op wanneer we verwijzen naar een object of locatie die niet bestaat of is gewijzigd. Om dit probleem op te lossen sporen we de referentie op.

De gebeurtenissen in Excel VBA | Er zijn zeven soorten gebeurtenissen in Excel. Elk evenement behandelt een ander bereik. Toepassingsgebeurtenis gaat over werkmapniveau. Werkboek op bladniveau. Werkblad Gebeurtenis op bereikniveau.

De werkbladgebeurtenissen in Excel VBA |De werkbladgebeurtenissen zijn erg handig als u wilt dat uw macro's worden uitgevoerd wanneer een opgegeven gebeurtenis op het werkblad plaatsvindt.

Werkmapgebeurtenissen met VBA in Microsoft Excel | De werkmapgebeurtenissen werken op de hele werkmap. Omdat alle bladen deel uitmaken van de werkmap, werken deze gebeurtenissen ook op hen.

Voorkom dat een automatische macro/gebeurtenismacro wordt uitgevoerd met VBA in Microsoft Excel | Gebruik de shift-toets om het uitvoeren van de macro auto_open te voorkomen.

Objectgebeurtenissen in kaart brengen met VBA in Microsoft Excel | De grafieken zijn complexe objecten en er zijn verschillende componenten die u eraan hebt gekoppeld. Om de Chart Events te maken gebruiken we de Class module.

Populaire artikels:

50 Excel-snelkoppelingen om uw productiviteit te verhogen | Word sneller in uw taak. Met deze 50 sneltoetsen werkt u nog sneller in Excel.

De VERT.ZOEKEN-functie in Excel | Dit is een van de meest gebruikte en populaire functies van Excel die wordt gebruikt om waarde op te zoeken uit verschillende bereiken en bladen.

AANTAL.ALS in Excel 2016 | Tel waarden met voorwaarden met behulp van deze geweldige functie. U hoeft uw gegevens niet te filteren om een ​​specifieke waarde te tellen. Countif-functie is essentieel om uw dashboard voor te bereiden.

Hoe de SUMIF-functie in Excel te gebruiken? | Dit is een andere essentiële functie van het dashboard. Dit helpt u bij het optellen van waarden voor specifieke voorwaarden.