17. september 2006 - 20:27Der er
10 kommentarer og 1 løsning
Function i VBA - find månednavn med udgangspunkt i et tal
Hej
Jeg har fået denne til at virke, men pludselig vil den ikke fungere. Er der en der kan hjælpe med med en forklaring og løsning.
----------------------
Public Function FindMonth(FMonth As String) As String
Select Case FMonth
Case 1 FindMonth = "January" Case 2 FindMonth = "February" Case 3 FindMonth = "March" Case 4 FindMonth = "April" Case 5 FindMonth = "May" Case 6 FindMonth = "June" Case 7 FindMonth = "July" Case 8 FindMonth = "August" Case 9 FindMonth = "September" Case 10 FindMonth = "October" Case 11 FindMonth = "November" Case 12 FindMonth = "December" Case Else FindMonth = "Error"
Public Function FindMonth(FMonth As String) As String
Select Case Month(FMonth)
Case 1 FindMonth = "January" Case 2 FindMonth = "February" Case 3 FindMonth = "March" Case 4 FindMonth = "April" Case 5 FindMonth = "May" Case 6 FindMonth = "June" Case 7 FindMonth = "July" Case 8 FindMonth = "August" Case 9 FindMonth = "September" Case 10 FindMonth = "October" Case 11 FindMonth = "November" Case 12 FindMonth = "December" Case Else FindMonth = "Error"
Hej! Prøv denne her, den bruger jeg når der klikkes på et menupunkt hvor der startes en VBA-form. Makroen herunder sørger for at formen kun startes hvis det aktive ark har et månedsnavn. Makroen bevirker at resten af makroen som ligger efter kun afspilles hvis det er et månedsark. Makroen stoppes når CACE Else afspilles.
Public Function Indtastning() Dim sArkNavn As String sArkNavn = ActiveSheet.Name
Select Case sArkNavn Case "Januar"
Case "Februar"
Case "Marts"
Case "April"
Case "Maj"
Case "Juni"
Case "Juli"
Case "August"
Case "September"
Case "Oktober"
Case "November"
Case "December"
Case Else 'Andre arknavne MsgBox "Menuen < NY INDTASTNING > kan ikke aktiveres på dette ark" End End Select
Jeg har forsøgt at rette min funktion til efter kabbaks anvisninger med jeg får den stadig ikke til at fungere.
Hvad kan der være galt?
Den har virket i mit ark men så ville den pludselig ikke. Skal den ligge under arket eller må den godt ligge i et modul?
Den ser således ud p.t.
Option Explicit
Public Function FindMonth(FMonth As Integer) As String
Select Case FMonth
Case "1" FindMonth = "January" Case "2" FindMonth = "February" Case "3" FindMonth = "March" Case "4" FindMonth = "April" Case "5" FindMonth = "May" Case "6" FindMonth = "June" Case "7" FindMonth = "July" Case "8" FindMonth = "August" Case "9" FindMonth = "September" Case "10" FindMonth = "October" Case "11" FindMonth = "November" Case "12" FindMonth = "December" Case Else FindMonth = "Error"
Nu har du jo også lavet begge rettelser på en gang, det var enten /eller
Public Function FindMonth(FMonth As String) As String ' Hvis det er string, er det tekst, så skal det være Case "1" ' hvis det er Integer er det heltal og så skal det være Case 1
Select Case FMonth
Case "1" FindMonth = "January" Case "2" FindMonth = "February" Case "3" FindMonth = "March" Case "4" FindMonth = "April" Case "5" FindMonth = "May" Case "6" FindMonth = "June" Case "7" FindMonth = "July" Case "8" FindMonth = "August" Case "9" FindMonth = "September" Case "10" FindMonth = "October" Case "11" FindMonth = "November" Case "12" FindMonth = "December" Case Else FindMonth = "Error"
Jeg har ikke fået fortalt, at FMonth henviser til en celle i arket. Jeg har derfor også tidligere forsøgt med FindMonth(FMonth as Range) og det virker ligeledes.
Nu håber jeg den vil virke fortsat ;-)
Kabbak du skal have tak for hjælpen og du skal have dine point for at hjælpe. Smider du et svar?
Sådan kommer den nok til at se ud, når jeg følger dit råd ;-)
Public Function FindMonth(FMonth As Integer) As String
Select Case FMonth
Case 1 FindMonth = "January" Case 2 FindMonth = "February" Case 3 FindMonth = "March" Case 4 FindMonth = "April" Case 5 FindMonth = "May" Case 6 FindMonth = "June" Case 7 FindMonth = "July" Case 8 FindMonth = "August" Case 9 FindMonth = "September" Case 10 FindMonth = "October" Case 11 FindMonth = "November" Case 12 FindMonth = "December" Case Else FindMonth = "Error"
Hvis du ikke gør noget speciel kan du bruge en indbygger funktion.
Hvis du skriver månedens nummer i A1, så kan du bruge
=DATO(2006;A1;1) eller engelsk =DATE(2006;A1;1)
og formater cellen brugerdefineret med mmmm
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.