VBA "offentlig " søgeord eksisterer for at gøre VBA funktioner tilgængelige for andre VBA funktioner og subrutiner . Konkret , det gør det muligt for en VBA funktion eller "sub " for at kalde en funktion i et andet modul. Vide hvornår man skal bruge offentlige funktioner giver dig mulighed for at oplyse nogen studere din VBA -program , at en funktion har en begrænset anvendelse. Dette hjælper personen forstår funktionen rolle og relative betydning i dit program. Formål
Formålet med en offentlig funktion er at give fuld adgang til en funktion fra enhver anden subrutine i en Excel-projektmappe . For eksempel, hvis du har skrevet en funktion kaldet " ParseLastName " , som trækker en persons efternavn fra en streng, der indeholder både første og sidste navne kan mange dele af din VBA-kode , spredt i forskellige kodning moduler, nødt til at bruge denne funktion. Realiseringen af funktionen private ville forhindre disse moduler fra at bruge " ParseLastName ", så gør denne funktion offentligheden.
Erkendelse
p Du kan genkende, hvis en funktion er offentlig ved at lede efter "offentligheden " søgeord før søgeordet "funktion" på ethvert sted i VBA , hvor du kan skrive en subrutine , herunder " ThisWorkbook " module , klasse -moduler og " Sheet " moduler , der holder subrutiner for hvert regneark i en Excel-projektmappe . Ikke alle offentlige funktioner bruger "offentlig " søgeord , dog. Hvis dette søgeord mangler, funktionen er stadig offentligt , medmindre det har den "private " søgeord , som i " privat funktion someFunction . "
Sample Application
< p > Offentlige funktioner giver mulighed for at skabe brugerdefinerede funktioner , der udmærker lister i sin "Indsæt funktion" dialogboksen i " formler" fanen. Sådan opretter du en brugerdefineret funktion , der beregner antallet af dage indtil næste jul , først indsætte følgende offentlige hverv i en ny VBA -modul , derefter vende tilbage til Excel , og klik på " Fx " knappen over regnearksgitteret . Klik på " Brugerdefineret " kategori, så dobbeltklik på " DaysToChristmas " post , der vises. Excel indsætter din funktion i det aktive regneark .
Offentlig funktion DaysToChristmas () As Integer
Dim Jul
Dim CurrentYear As Integer
CurrentYear = år ( now)
jul = " 12/25 /" & CurrentYear
DaysToChristmas = DateDiff ( "d" , now ( ) , DateValue ( jul) )
End Function < br >
når ikke at bruge
Brug ikke en offentlig funktion , når du har skrevet en subrutine til brug i en specifik kontekst. Brug en privat funktion i stedet. For eksempel, hvis du har brug for en funktion til at fratage ud tredje tegn fra starten af en streng , og kun en subrutine vil kalde denne funktion skriver dette hjælper funktion i samme modul som underprogram , der har behov for det , og erklære den private. Faren for at erklære det offentlige er, at du senere kan være nødvendigt at skrive en anden offentlig funktion med samme navn. VBA vil vise en fejlmeddelelse i dette tilfælde , da det ikke ved, hvilken funktion du ville udføre.