1
我收到這個方法的編譯錯誤,我找不出原因。我收到「Sub or Function not define」錯誤。它可能有些愚蠢,但是逃脫我毫無意義。 在此先感謝。Excel VBA - 子或功能沒有定義錯誤
Public Function GetReportDate(dept As String) As String
Dim dateOut As String 'this will be the returned value from the method
Dim dateIn As String 'this is the date retrieved from the report
Dim MonthNum As String
Dim Temp As String 'this variable stores that date that will be manipulated
Dim StartEnd(1 To 4, 1 To 4) As String
Dim Period As String
Dim Year As Integer
'select the date string
Select Case dept
Case "Min and AMF": Cells(2, 2).Select
Case Else: Cells(2, 1).Select
End Select
Selection.Font.Bold = True
'store the month, day and year string to the array
dateIn = ActiveCell.Value
Temp = dateIn
StartEnd(1, 1) = Mid(Temp, 1, 2) '1st month
StartEnd(1, 2) = Mid(Temp, 14, 2) '2nd month
StartEnd(2, 1) = Mid(Temp, 4, 2) '1st day
StartEnd(2, 2) = Mid(Temp, 17, 2) '2nd day
StartEnd(3, 1) = Mid(Temp, 7, 4) '1st year
'assign to two var
MonthNum = StartEnd(1, 2)
Year = StartEnd(3, 1)
' change the month format for the 1st month
Select Case StartEnd(1, 1)
Case "01": StartEnd(1, 1) = "Jan"
Case "02": StartEnd(1, 1) = "Feb"
Case "03": StartEnd(1, 1) = "Mar"
Case "04": StartEnd(1, 1) = "Apr"
Case "05": StartEnd(1, 1) = "May"
Case "06": StartEnd(1, 1) = "Jun"
Case "07": StartEnd(1, 1) = "Jul"
Case "08": StartEnd(1, 1) = "Aug"
Case "09": StartEnd(1, 1) = "Sep"
Case "10": StartEnd(1, 1) = "Oct"
Case "11": StartEnd(1, 1) = "Nov"
Case "12": StartEnd(1, 1) = "Dec"
End Select
' change the month format for the 2nd month
Select Case StartEnd(1, 2)
Case "01": StartEnd(1, 2) = "Jan"
Case "02": StartEnd(1, 2) = "Feb"
Case "03": StartEnd(1, 2) = "Mar"
Case "04": StartEnd(1, 2) = "Apr"
Case "05": StartEnd(1, 2) = "May"
Case "06": StartEnd(1, 2) = "Jun"
Case "07": StartEnd(1, 2) = "Jul"
Case "08": StartEnd(1, 2) = "Aug"
Case "09": StartEnd(1, 2) = "Sep"
Case "10": StartEnd(1, 2) = "Oct"
Case "11": StartEnd(1, 2) = "Nov"
Case "12": StartEnd(1, 2) = "Dec"
End Select
'Change the Date Format After the Min Qem has been executed
'If dept = "Min and AMF" Then
' the 1st and 2nd month are equal
If StartEnd(1, 1) = StartEnd(1, 2) Then
' find the type of report
If StartEnd(2, 2) - StartEnd(2, 1) <= 7 Then
Period = "Week"
Else
Period = "Month"
End If
' change the report period to the right format
ActiveCell = Period & " of " & StartEnd(1, 1) & " " & StartEnd(2, 1) & " " _
& "to" & " " & StartEnd(2, 2) & " " & Year
Else ' the 1st and 2nd month are NOT equal
If 30 - StartEnd(2, 1) + StartEnd(2, 2) >= 20 Then
Period = "Month"
Else
Period = "Week"
End If
'change the header of the report to represt the period
ActiveCell = Period & " of " & StartEnd(1, 1) & " " & StartEnd(2, 1) _
& " " & "to" & " " & StartEnd(1, 2) & " " & StartEnd(2, 2) _
& " " & Year
End If
'return the dateout
dateOut = Temp
GetReportDate = dateOut
End Function
當我打電話的方法,這就是我使用的。
CurReport = GetReportName(sDept)
該死的叫!我是一個白癡,調用了錯誤的功能......它只是在做我說的要做的事情。 – JasonR