VBA " offentliga " nyckelordet finns för att göra VBA-funktioner tillgängliga för andra VBA-funktioner och subrutiner . Specifikt , gör det möjligt för en VBA -funktion eller " sub " för att anropa en funktion i en annan modul . Att veta när man använder offentliga funktioner gör att du kan ange för personer som studerar din VBA -program som en funktion har en begränsad användning . Detta hjälper personen att förstå funktionens roll och relativa betydelse i ditt program . Syfte
Syftet med en offentlig funktion är att ge fullständig tillgång till en funktion från någon annan subrutin i en Excel-arbetsbok . Till exempel , om du har skrivit en funktion som heter " ParseLastName " som extraherar en persons efternamn från en sträng som innehåller både för-och efternamn , kan många delar av din VBA-kod , utspridda i olika kodning moduler , måste använda den här funktionen . Att funktionen privata förhindra dessa moduler från att använda " ParseLastName , " så gör denna funktion allmänheten .
Erkänner
Du kan känna igen om en funktion är offentligt genom att leta efter den " offentliga " nyckelordet framför sökordet " -funktionen " på någon plats i VBA där du kan skriva en subrutin , inklusive " ThisWorkbook " modul , klassmoduler och "ark" moduler , som håller subrutiner för varje kalkylblad i en Excel-arbetsbok . Inte alla offentliga funktioner använder " allmänheten " nyckelordet , dock . Om sökordet saknas , är funktionen fortfarande offentliga , såvida det inte har " privata " nyckelordet , som i " private function someFunction . " Addera ditt Sample Application
Offentliga funktioner ge möjligheter till att skapa användardefinierade funktioner som Excel-listor i sin " Infoga funktion " i dialogrutan " formler " fliken . För att skapa en användardefinierad funktion som beräknar antalet dagar till nästa jul , först klistra in följande offentliga uppdrag i ett nytt VBA -modul , sedan tillbaka till Excel och klicka på " Fx " knappen ovanför kalkylbladet gallret . Klicka på " User defined " kategorin , sedan dubbelklicka på " DaysToChristmas " objekt som visas . Excel infogar din funktion i det aktiva kalkylbladet .
Public Function DaysToChristmas ( ) As Integer
Dim Jul
Dim CurrentYear As Integer
CurrentYear = År ( nu ) katalog
jul = " 25/12 /" & CurrentYear
DaysToChristmas = DateDiff ( " d " , now ( ) , DateValue ( jul ) ) katalog
End Function
när inte använda
Använd inte en offentlig funktion när du har skrivit en subrutin för användning i ett specifikt sammanhang . Använd en privat funktion i stället . Till exempel , om du behöver en funktion för att skala bort det tredje tecknet från början av en sträng , och endast en subrutin kommer att kalla denna funktion skriva detta hjälparfunktion i samma modul som subrutin som behöver det , och förklara den privata . Faran med att förklara det offentliga är att du senare kan behöva skriva en annan offentlig funktion med samma namn . VBA visas ett felmeddelande i det här fallet , eftersom den inte vet vilken funktion du tänkt att köra .