2014-12-04 65 views
0

如何以日期格式获得IsMonday()的输出?当前函数的值是真或假。我试图通过公共变量dt作为另外两个子过程的参数。格式化公共功能的输出

Option Explicit 
Public dt As Date 

Sub test2() 
MsgBox Date 

MsgBox dt 

MsgBox IsMonday(dt) 

End Sub 

Public Function IsMonday(inputdate As Date) As Boolean 

    Select Case Weekday(inputdate) 
     Case vbMonday 
      dt = Date - 3    
      'dt = Format(dt, "mmddyyyy") 
     Case Else 
      dt = Date - 1 
      'dt = Format(Date - 1, "mmddyyyy")   
      'dt = Format(dt, "mmddyyyy") 
    End Select 

End Function 
+2

通常,当您使用isSomething()它应该返回布尔真/假。我想你试图以某种方式操纵日期。 – peege 2014-12-04 00:20:34

+0

函数的值是真或假,因为你明确地说它应该是让它返回'Boolean'。为什么你会期望有不同的东西能被退回? – 2014-12-04 00:24:47

+0

你能举一些你期望的输入和相关输出的例子吗? – Enigmativity 2014-12-04 00:36:34

回答

0

如果你想传递一个值从你的函数的日期,你要宣布结果的日期......

Public Function IsMonday(inputdate As Date) As Date 

    Select Case Weekday(inputdate) 
     Case vbMonday 
      dt = Date - 3    
      'dt = Format(dt, "mmddyyyy") 
     Case Else 
      dt = Date - 1 
      'dt = Format(Date - 1, "mmddyyyy")   
      'dt = Format(dt, "mmddyyyy") 
    End Select 
IsMonday = dt 
End Function